RocketMQ集群环境程序启用相关知识点

上一篇 << 下一篇 >>>RocketMQ单机做主备实操


1.RocketMQ集群类型

a、nameServer(注册中心存放mq服务地址信息)集群----需要将nameserver全部启动起来,然后broker需要配置多个nameserver,并连接到多个nameserver
b、broker(MQ服务端)集群-----nameserver可以只启动一个,但broker启动的时候,需要连到同一个nameserver

2.四种集群部署方式

a.单个Master节点, 缺点:负载压力大,如果宕机的话,数据会丢失
b.多个Master节点,分摊存放我们的消息,缺点:没有Slave节点,主的Master节点宕机之后消息数据可能会丢失的;
c.多个Master和Slave节点 采用同步形式,效率比较低,但数据不会丢失,也不会产生延迟。
d.多个Master和Slave节点 采用异步形式,效率非常高,但数据可能产生短暂延迟(毫秒级别的),也可能会出现数据丢失

3.集群结构图

1.Topic是大目录,队列是topic的子集。
2.每个主题在不同的broker上默认都有4个生产者队列和4个消费者队列,可通过配置修改:
defaultTopicQueueNums=4

4.程序默认不走集群

由程序创建的主题能看到8个不同的队列,但是不会集群的,也就是不会投递到不同的集群队列上。


5.集群生效设置

如果程序想走集群的主题,可先创建主题,配置集群信息,然后配置到代码中。

6.生产者投递消息的算法

  • 随机
  • 轮询
消费者获取消息 brokerName: broker-a topic:tp1231001 queueId:2,队列id:2, 消息迦叶msgid:0A2581022BB718B4AAC29EE525C50000
消费者获取消息 brokerName: broker-a topic:tp1231001 queueId:0,队列id:0, 消息迦叶msgid:0A2581022BB718B4AAC29EE525C50000
消费者获取消息 brokerName: broker-a topic:tp1231001 queueId:1,队列id:1, 消息迦叶msgid:0A2581022BB718B4AAC29EE525C50000
消费者获取消息 brokerName: broker-a topic:tp1231001 queueId:3,队列id:3, 消息迦叶msgid:0A2581022BB718B4AAC29EE525C50000
  • hash—可保证消息的顺序性

推荐阅读:
<<<消息中间件的核心思想
<<<消息中间件常见问题汇总
<<<基于Netty简单手写消息中间件思路
<<<消息队列常用名词与中间件对比
<< << << << << << << << << << << << << << << << << << << << << << << << << << << << << << << <<

你可能感兴趣的:(RocketMQ集群环境程序启用相关知识点)