RocketMQ

2021-08-05  本文已影响0人  加夕

一、 专业术语

二、特性

1.优先级:设置不同的topic来实现优先级,不支持严格优先级。

2.持久化:文件记录形式持久化

3.影响消息可靠性:硬件资源可立即恢复情况,能保证消息不丢,或者丢失少量数据(依赖刷盘方式是同步还是异步);不能立即恢复,单点上的消息全部丢失,通过异步复制,可保证99%的消息不丢,但是仍然会有极少量的消息可能丢失。

4.使用长轮训pull方式,可保证消息非常实时,消息实时性不低于Push。

5.每个消息必须投递一次:消费者先pull消息到本地,消费完成后,才向服务器返回ack,如果没有消费一定不会ack消息。

6.消息重复:RocketMQ不严格保证不重复,但正常情况下很少出现重复发送、消费情况。(只有网络异常、Consumer启停等异常情况下会出现消息重复)

7.Buffer:没有Buffer概念,队列都是持久化磁盘,数据定期清除。Buffer抽象成一个无限长度的队列,不管有多少数据进来都能装得下,但是会定期删除过期的数据,Broker只保存3天的消息。

8.回溯消费:支持按照时间回溯消费,时间维度精确到毫秒,可以向前回溯,也可以向后回溯。

9.消息堆积:在有slave情况下,master一旦发现Consumer访问堆积在磁盘的数据时,会向Consumer下达一个重定向指令,令Consumer从Slave拉取数据,这样正常的发消息与正常消费的Consumer都不会因为消息堆积受影响,因为系统将堆积场景与非堆积场景分割在了两个不同的节点处理。

10.分布式事务:

11.定时消息:支持,但是不支持任意时间精度,支持特定的level,例如定时5s、10s、1m等。

12.消息重试:

13.消息过滤:

Broker端消息过滤:在Broker中按照Consumer的要求做过滤,优点是减少了对于Consumer无用消息的网络传输。缺点是增加了Broker的负担,实现相对复杂。

Consumer端消息过滤:这种过滤方式可由应用完全自定义实现,但缺点是很多无用的消息要传输到Consumer端。

三、RocketMQ是什么

四、架构

1.服务发现:Name Server

专为RocketMQ设计的轻量级名称服务,具有简单、可集群横向扩展、无状态等特点。

2.逻辑部署结构

3.物理部署结构

五、其他

1.发送消息负载均衡:轮询队列的方式发送,每个队列接收平均的消息量。

2.订阅消息负载均衡:平均。(若5个队列,2个Consumer,则第一个3个,第二个2个)(若10个队列,20个Consumer,则前10个每个一个队列,后10个Consumer不能消费消息)

3.顺序消息:将同一参数(比如OrderID)的消息发送到同一个队列。缺点:

上一篇下一篇

猜你喜欢

热点阅读