首页 > 其他分享 >RocketMQ—消费者的两种消费模式

RocketMQ—消费者的两种消费模式

时间:2024-03-04 09:04:33浏览次数:26  
标签:group 消费者 模式 mode message consumer public RocketMQ

RocketMQ—消费者的两种消费模式

RocketMQ消息消费的模式分为两种:负载均衡模式和广播模式,负载均衡模式表示多个消费者交替消费同一个主题里面的消息;广播模式表示每个每个消费者都消费一遍订阅的主题的消息。

负载均衡模式

CLUSTERING 集群模式下 队列会被消费者分摊, 队列数量>=消费者数量 消息的消费位点 mq服务器会记录处理

代码如下

/**
 * CLUSTERING 集群模式下 队列会被消费者分摊, 队列数量>=消费者数量 消息的消费位点 mq服务器会记录处理
 */
@Component
@RocketMQMessageListener(topic = "modeTopic",
        consumerGroup = "mode-consumer-group-a",
        messageModel = MessageModel.CLUSTERING, // 集群模式 负载均衡
        consumeThreadNumber = 40

)
public class DC1 implements RocketMQListener<String> {

    @Override
    public void onMessage(String message) {
        System.out.println("我是mode-consumer-group-a组的第一个消费者:" + message);
    }
}


@Component
@RocketMQMessageListener(topic = "modeTopic",
        consumerGroup = "mode-consumer-group-a",
        messageModel = MessageModel.CLUSTERING // 集群模式
)
public class DC2 implements RocketMQListener<String> {
    @Override
    public void onMessage(String message) {
        System.out.println("我是mode-consumer-group-a组的第二个消费者:" + message);

    }
}

广播模式

BROADCASTING 广播模式下 消息会被每一个消费者都处理一次, mq服务器不会记录消费点位,也不会重试。

@Component
@RocketMQMessageListener(topic = "modeTopic",
        consumerGroup = "mode-consumer-group-b",
        messageModel = MessageModel.BROADCASTING // 广播模式
)
public class DC4 implements RocketMQListener<String> {
    @Override
    public void onMessage(String message) {
        System.out.println("我是mode-consumer-group-b组的第一个消费者:" + message);
    }
}
@Component
@RocketMQMessageListener(topic = "modeTopic",
        consumerGroup = "mode-consumer-group-b",
        messageModel = MessageModel.BROADCASTING // 广播模式
)
public class DC5 implements RocketMQListener<String> {
    @Override
    public void onMessage(String message) {
        System.out.println("我是mode-consumer-group-b组的第二个消费者:" + message);
    }
}

标签:group,消费者,模式,mode,message,consumer,public,RocketMQ
From: https://www.cnblogs.com/nicaicai/p/18051097

相关文章

  • 精简实现、线程安全:C#通用单例泛型基类助你轻松创建单例模式
     概述:该通用单例泛型基类使用C#实现,线程安全,通过泛型参数和Lazy<T>实现简化的单例模式。优点包括线程安全、泛型通用性、简化实现、以及延迟加载的特性。优点:线程安全: 使用Lazy<T>确保了线程安全的延迟初始化,避免了在多线程环境下可能导致的竞态条件问题。泛型通用性: 通......
  • 设计模式-享元模式
    享元模式的英文是flyweight,就是flyweight模式,那这个模式,它适合是什么样的场景,其实很简单,就是我们现在要缓存些数据,比如说我们要缓存这个权限,然后根据这个权限的id,作为key,然后权限数据,自己本身,是这个value,但是,我们不需要使用这个太复杂的,比如说ehcache框架之类的,去使用,因为这个东......
  • 利用单例模式与阻塞队列实现异步的日志系统,记录服务器运行状态
    目录类结构概述主要特性总结Log类是一个用于日志记录的C++类,其设计具有以下特点和功能:类结构概述类成员变量:path_:日志文件存储路径。suffix_:日志文件后缀名。MAX_LINES_:每个日志文件允许的最大行数。lineCount_:当前日志文件已写的行数。toDay_:当前日志文......
  • MySQL之SQL语句+严格模式
    SQL使用规范在数据库管理系统中,SQL语句关键字不区分大小写(但建议用大写),参数区分大小写。建议命令大写,数据库名、数据表名、字段名统一小写,如数据库名、数据表名、字段名与关键字同名,使用反引号圈起来,避免冲突。SQL语句可单行或多行书写,默认以英文分号(;)结尾,关键词不能跨多......
  • RabbitMQ、RocketMQ、Kafka区别
    引言1、队列应用场景:MQ(MessageQueue,消息队列)消息队列在实际应用中常用的使用场景(优点):异步处理,应用解耦,流量削锋和消息通讯四个场景。2、目前使用较多的消息队列:有老牌的ActiveMQ、RabbitMQ,ZeroMQ,炙手可热的Kafka,MetaMQ,阿里巴巴的RocketMQ。3、如何选型(目前现状):......
  • 对于需要实时处理的代码语句 就用定时器中断模式,实现多线程模式,建议不要用查询模式。
    对于需要实时处理的代码语句就用定时器中断模式,实现多线程模式,建议不要用查询模式。 示例代码1:查看代码#include"delay.h"#include"sysInt.h"#include"intrins.h"charSMGDuan[]={0x5B,0x3F,0x5B,0x66, 0x40,0x40, 0x3F,0x3F}; //2024--MMcharsegDuan[]={0x3F,0......
  • Hyper-v系列---【使用NAT模式连接虚拟机并使用宿主机网络】
    1.虚拟交换机外部网络:就是桥接模式,虚拟机ip和宿主机ip在一个段上,网关和宿主机一样。弊端是,一切换网络,虚拟机ip就得跟着改。内部网络(推荐):就是NAT模式,可以固定ip,把所有虚拟机改成同一个网关ip,使用以太网把网络共享给NAT模式的网卡,把NAT模式的虚拟网卡ip地址改成前面虚拟机的网......
  • kmp模式匹配例题思考
    题目描述读入一个字符串数组string[],再读入一个短字符串。要求查找string[]中和短字符串的所有匹配,输出行号和匹配的字符串以。匹配时不区分大小写,并且可以有一个中括号表示的模式匹配。例如,对aa[123]bb来说,aa1bb,aa2bb,aa3bb都算匹配。输入格式:第一行输入字符串数组的长度接下......
  • 跟着GPT学设计模式之代理模式
    引言代理模式(ProxyDesignPattern)在不改变原始类(或叫被代理类)代码的情况下,通过引入代理类来给原始类附加功能。代理模式的关键角色包括:抽象主题(Subject):定义了目标对象和代理对象的共同接口,这样一来在任何可以使用目标对象的地方都可以使用代理对象。目标对象(RealSubject):也......
  • 关于KMP模式匹配的一些思考
    算法简介模式匹配给定主串text和模式串pattern,在主串中查找,如果找到了模式串,返回模式串在主串中的起始位置,从1开始计数。暴力求解求解模式匹配算法的核心思想是:蛮力法。即使用两个指针i和j,其中i指针用来遍历text,j指针用来遍历pattern。当text[i]==text[j]的时候,继续比较;如果不......