zoukankan      html  css  js  c++  java
  • RocketMQ消费模式

    RocketMQ的消费模式有2种

     1 public enum MessageModel {
     2     BROADCASTING("BROADCASTING"),
     3     CLUSTERING("CLUSTERING");
     4 
     5     private String modeCN;
     6 
     7     private MessageModel(String modeCN) {
     8         this.modeCN = modeCN;
     9     }
    10 
    11     public String getModeCN() {
    12         return this.modeCN;
    13     }
    14 }

    查看一下源码,在默认情况下,就是集群消费(CLUSTERING)。另一种消费模式,是广播消费(BROADCASTING)。

    其实,对于RocketMQ而言,通过ConsumeGroup的机制,实现了天然的消息负载均衡!通俗点来说,RocketMQ中的消息通过ConsumeGroup实现了将消息分发到C1/C2/C3/……的机制,这意味着我们将非常方便的通过加机器来实现水平扩展!

    至于消息分发到C1/C2/C3,其实也是可以设置策略的:

     

    默认的分配算法是AllocateMessageQueueAveragely

    还有另外一种平均的算法是AllocateMessageQueueAveragelyByCircle,也是平均分摊每一条queue,只是以环状轮流分queue的形式,如下图:

    广播消费,类似于ActiveMQ中的发布订阅模式,消息会发给Consume Group中的每一个消费者进行消费。  由于广播模式下要求一条消息需要投递到一个消费组下面所有的消费者实例,所以也就没有消息被分摊消费的说法。
    RocketMQ-广播消费模式设置:
  • 相关阅读:
    redis从入门到放弃 -> 数据持久化
    yum怎么用?
    centos7.2系统没有eth0网卡
    redis从入门到放弃 -> 部署方案
    redis从入门到放弃 -> 简介&概念
    mysql用户权限设置
    mysql安装注意
    解决windows下的mysql匿名登陆无法使用mysql数据库的问题
    参数化测试--sheet表的应用
    整理QTP知识之1
  • 原文地址:https://www.cnblogs.com/jelly12345/p/12789500.html
Copyright © 2011-2022 走看看