NameServer 集群中那个节点执行路由删除,还是NameServer 集群 中所有的节点都执行删除操作?
RocketMQ 发送普通消息有三种实现方式:
- 可靠同步发送(sync):同步等待
- 可靠异步发送(async):异步、回调
- 单向发送(oneway):只管发送
- RocketMQ消息结构
- 消息生产者启动流程
- 消息发送过程
- 批量消息发送
在默认情况下,rocketmq会为每个topic在Broker节点上分配若干个队列,默认的队列数量是4 (defaultTopicQueueNums: 4),
客户端使用长轮询发起请求,和服务端连接上,主动从broker上拉取消息,而每个队列只能由一个消费者监听消费
,这样就做到了消息的实时性得到保障,同时保证了消息只有由一个消费者监听消费.
rocketmq可以横向扩展消费者数量来提高集群的消费能力,但由于一条队列只能由一个消费者监听消费,多余的消费者将不能消费,所以我们扩展消费者数量的时候,需要注意队列的数量是否大于消费者数量。
Broker 在启动的时候会向所有的NameServer注册,单个Broker节点与所有的NameServer节点保持长连接及心跳, 并会定时将Topic信息注册到NameServer