(24)为什么选择RocketMQ
为什么选择RocketMQ,而不是其他MQ
- 性能:阿里支撑,经受住淘宝,天猫双11重重考验;性能高;可靠性好;可用性高;扩展。
- 功能:功能完善,我们需要的功能基本都够满足,如:事务消息,消息重试,死信队列,定时消息等。
- 易用:跨平台:跨语言,多协议接入(支持HTTP, MQTT, TCP协议,支持Restful风格HTTP收发消息)。
RocketMQ 由哪些角色组成
- 生产者(Producer):负责产生消息,生产者向消息服务器发送由业务应用程序系统生成的消息。
- 消费者(Consumer):负责消费消息,消费者从消息服务器拉取信息并将其输入用户应用程序。
- 消息服务器(Broker):是消息存储中心,主要作用是接收来自 Producer的消息并存储, Consumer 从这里取得消息。
- 名称服务器(NameServer):用来保存 Broker 相关 Topic 等元信息并给 Producer ,提供 Consumer 查找Broker信息。
说说你对消费者的了解
- 获得 Topic-Broker 的映射关系。consumer 启动时需要指定 Namesrv 地址,与其中一个 Namesrv 建立长连接。消费者每隔 30 秒从 Namesrv 获取所有Topic 的最新队列情况,
Consumer 跟 Broker 是长连接,会每隔 30 秒发心跳信息到Broker。 - 消费者端的负载均衡。根据消费者的消费模式不同,负载均衡方式也不同。
- 获得 Topic-Broker 的映射关系。consumer 启动时需要指定 Namesrv 地址,与其中一个 Namesrv 建立长连接。消费者每隔 30 秒从 Namesrv 获取所有Topic 的最新队列情况,
消费者消费模式有几种
- 集群消费:一个 Consumer Group 中的各个 Consumer 实例分摊去消费消息,即一条消息只会投递到一个 Consumer Group 下面的一个实例。
- 广播消费:消息将对一个Consumer Group 下的各个 Consumer实例都投递一遍。即使这些 Consumer 属于同一个Consumer Group ,消息也会被 Consumer Group 中的每个 Consumer 都消费一次。
参考:
https://blog.csdn.net/pzq915981048/article/details/88971356
https://blog.csdn.net/huayushuangfei/article/details/80866642