rocketMQ

广播模式,集群模式(默认),队列顺序(四个队列,每次发到同一个)。它适用于削峰并且不需要时立刻返回结果的场景
 
1。相互之间的关系
1.2.2 NameServer集群

 

NameServer的作用是注册中心,类似于Zookeeper,但又有区别于它的地方。每个NameServer节点互相之间是独立的,没有任何信息交互,也就不存在任何的选主或者主从切换之类的问题,因此NameServer与Zookeeper相比更轻量级。单个NameServer节点中存储了活跃的Broker列表(包括master和slave),这里活跃的定义是与NameServer保持有心跳。
1.2.3 Broker集群

 

Broker是具体提供业务的服务器,单个Broker节点与所有的NameServer节点保持长连接及心跳,并会定时将Topic信息注册到NameServer,顺带一提底层的通信和连接都是基于Netty实现的。
Broker中分master和slave两种角色,每个master可以对应多个slave,但一个slave只能对应一个master,master和slave通过指定相同的Brokername,不同的BrokerId (master为0)成为一个组。master和slave之间的同步方式分为同步双写和异步复制,异步复制方式master和slave之间虽然会存在少量的延迟,但性能较同步双写方式要高出10%左右。
1.2.4 Producer集群
1.2.4.1 与nameserver的关系

 

单个Producer和一台nameserver保持长连接,定时查询topic配置信息,如果该nameserver挂掉,生产者会自动连接下一个nameserver,直到有可用连接为止,并能自动重连。与nameserver之间没有心跳。
1.2.4.2 与broker的关系

 

单个Producer和与其关联的所有broker保持长连接,并维持心跳。默认情况下消息发送采用轮询方式,会均匀发到对应Topic的所有queue中。
1.2.5 Consumer集群
1.2.5.1 与nameserver的关系

 

单个Consumer和一台nameserver保持长连接,定时查询topic配置信息,如果该nameserver挂掉,消费者会自动连接下一个nameserver,直到有可用连接为止,并能自动重连。与nameserver之间没有心跳。
1.2.5.2 与broker的关系

 

单个Consumer和与其关联的所有broker保持长连接,并维持心跳,失去心跳后,则关闭连接,并向该消费者分组的所有消费者发出通知,分组内消费者重新分配队列继续消费。

 
 
2。相比dubbo的优势
    a).服务挂掉之后不会报错,因为他不是调用,只是发信息而已
 
 

    
3。消费模式
集群模式

 

在默认情况下,就是集群消费,此时消息发出去后将只有一个消费者能获取消息。
广播模式

 

另一种消费模式,是广播消费。广播消费,类似于ActiveMQ中的发布订阅模式,消息会发给Consume Group中的每一个消费者进行消费。
 
 
4。关于标签,应该是可以设置多个,它是一个map
 
posted @ 2020-09-17 22:55  codeDirectory  阅读(130)  评论(0)    收藏  举报