RocketMQ-Topic创建

手动创建

我们打开控制台,有一个主题的table,点击新增
RocketMQ-Topic创建_第1张图片
这里创建Topic分为集群模式,和Broker模式,二者区别如下

  • 集群模式:该模式下创建的Topic是指当前集群下,所有的Broker中的Queue数量是相同的
  • Broker模式:该模式下创建的Topic在集群中,每隔Broker中的Queue数量可以不同

自动创建

自动创建Topic时,默认采用的是Broker模式,会为每个Broker默认创建4个Queue,这个可以再配置文件中配置。

读/写队列

介绍
读写队列实际上在物理概念上是同一个队列,所以是不存在读写队列数据同步的问题,读写队列是在逻辑上区分的概念,一般情况下读写队列数量是相同的,但是我们可以设置不同,比如创建Topic时,设置我们写队列创建8个,读队列4个,那么就会有0-7个Queue可写,0-3个队列为可读,那么Producer会将消息写入到0-7这八个队列中,但是Consumer只会消费0-3这4个Queue中的消息,4-7中的Queue中的消息是不会被消费的,假设我们消费者集群中有两个Consumer,Consumer1消费0-3,Consumer2消费4-7,但是实际上Consumer2是没法消费消费消息的,那么这样一个设置,很明显是容易出现问题的,但是RocketMQ为什么这么设置呢,原因如下!

缩容
通常情况下,我们手动创建Topic的时候读写Queue设置都是一样的,但是如果我们刚开始高估了我们的系统消息吞吐量,一开始就设置为16个Queue,但是后期实际上消息只有一半,那么为了提高系统资源利用,我们可以对Topic下的Queue进行动态缩容,那么这时我们就可以调整读写队列数量,我们可以先将写队列缩容为8,那么此时生产者发送的消息就自会到达0-7队列中,二消费者还是消费0-15中的Queue,等待消费者将8-15Queue消费完,那么此时,就可以将读队列设置为8个,那么此时就可以保证消息不丢失的情况下完成动态缩容

perm

是设置当前Topic的读写权限,默认是6,2是只读、4是只写、6是读写

你可能感兴趣的:(#,RocketMQ,RocketMQ)