对RocketMQ初步理解

本文介绍了RocketMQ的基本概念和工作原理,包括主题模型、生产者组和消费者组、消息队列、Broker和NameServer的角色。 RocketMQ提供主从复制确保高可用,NameServer作为注册中心管理Broker路由信息,Producer和Consumer通过NameServer获取路由进行通信。文章还探讨了集群部署、消息顺序消费和防止重复消费的策略。
摘要由CSDN通过智能技术生成

主题模:在主题模型中,消息的生产者称为发布者,消息的消费者称为订阅者,存放消息的容器称为主题。

生产者组: 代表某一类的生产者,比如我们有多个秒杀系统作为生产者,这多个合在一起就是一个生产者组,它们一般生产相同的消息。

消费者组: 代表某一类的消费者,比如我们有多个短信系统作为消费者,这多个合在一起就是一个 消费者组,它们一般消费相同的消息。

主题: 代表一类消息,比如订单消息,物流消息等等。

主题中存在多个队列,生产者每次生产消息之后是指定主题中的某个队列发送消息的。集群消费模式下,一个消费者集群多台机器共同消费一个 `topic` 的多个队列,一个队列只会被一个消费者消费。如果某个消费者挂掉,分组内其它消费者会接替挂掉的消费者继续消费,一般来讲要控制消费者组中的消费者个数和主题中队列个数相同。

我们知道在发布订阅模式中一般会涉及到多个消费者组,而每个消费者组在每个队列中的消费位置都是不同的。如果此时有多个消费者组,那么消息被一个消费者组消费完之后是不会删除的(因为其它消费者组也需要呀),它仅仅是为每个消费者组维护一个消费位移(offset) ,每次消费者组消费完会返回一个成功的响应,然后队列再把维护的消费位移加一,这样就不会出现刚刚消费过的消息再一次被消费了。

维护多个队列?提高并发能力

RocketMQ` 技术架构中有四大角色 `NameServer` 、`Broker` 、`Producer` 、`Consumer` 。我来向大家分别解释一下这四个角色是干啥的。

Broker: 主要负责消息的存储、投递

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值