1. 最佳实践之 Producer1. 一个应用尽可能用一个 Topic,消息子类型用 tags 来标识,tags 可以由应用自由设置。只有发送消息设置了 tags,消费方在订阅消息时,才可以利用 tags 在 broker 做消息过滤。message.setTags("TagA");2. 每个消息在业务层面的唯一标识码,要设置到 keys 字段,方便将来定位消息丢失问题。服务器会为每个消息创建索
转载
2024-06-05 10:33:15
140阅读
topic、tag、key的区别?topic是消息的一级分类,tag相当于是消息的二级分类,key一般用于消息在业务层面的唯一标识。对发送的消息设置好 Key,以后可以根据这个 Key 来查找消息。关于consumerGroup:一个consumerGroup下可以有多个消费者,但是必须订阅相同的topic和tag,否则后启动的消费者会覆盖前面消费者订阅的topic和tag。消息有2种消费方式,被
转载
2024-03-06 21:25:21
187阅读
消息过滤说到消息过滤,就不得不说到 tag。没错,就是我们之前在专业术语中提到过的 tag。也称为消息标签,用来标记 Topic 下的不同用途的消息。在 RocketMQ 中消费者是可以按照 Tag 对消息进行过滤。举个电商交易场景的例子,用户下完订单之后,在后台会产生一系列的消息,比如说订单消息、支付消息和物流消息。假设这些消息都发送到 Topic 为 Trade 中,同时用 tag 为 ord
转载
2024-06-05 10:29:56
95阅读
名词解释topic && tagTopic : 消息主题,一级消息类型,通过 Topic 对消息进行分类。Tag : 消息标签,二级消息类型,用来进一步区分某个 Topic 下的消息分类。 RMQ 允许消费者按照 Tag对消息进行过滤,确保消费者最终只消费到他的消息类型。//制定topic && tag 进行消息过滤
consumer.subscribe("to
转载
2024-06-28 11:17:13
326阅读
本文站在消费者和生产者的角度给出一些RocketMQ客户端使用的实践意见。一、Producer最佳实践发送消息注意事项一个应用尽可能用一个Topic,消息子类型用tags来标识,tags可以由应用自由设置。只有发送消息设置了tags,消费方在订阅消息时,才可以利用tags在broker做消息过滤。message.setTags("TagA");每个消息在业务层面的唯一标识码,要设置到keys字段,
转载
2024-06-04 14:17:11
675阅读
简单总结:通过保证“消息发送”与本地事务的原子性,而消息的订阅则交由MQ本身的机制实现。执行流程说明:Producer向borker发送消息;服务端将消息持久化后,向发送方确认消息已经发送成功后,此事为半消息。发送方开始执行本地事务逻辑。发送方根据本地事务执行结果向服务端二次确认(Commit或者Rollback),服务端收到commit状态则半消息标志为可投递,订阅方最终收到消息;服务端收到ro
转载
2024-03-25 08:12:43
125阅读
一、初识RocketMQ 我们平时使用一些体育新闻软件,会订阅自己喜欢的一些球队板块,当有作者发表文章到相关的板块,我们就能收到相关的新闻推送。 发布-订阅(Pub/Sub)是一种消息范式,消息的发送者(称为发布
转载
2024-07-15 00:14:38
159阅读
1. RocketMQ 概览1.1 用途:应用解耦、异步调用、流量削峰、分布式最终一致性1.2 概念:Topic&Tag:Topic是发布订阅的主题,Tag属于子Topic,主要作用是提供给业务更大的灵活度,用来分流消息。Producer&Consumer:Producer 是生产者,生产并发送消息。Consumer 是消费者,分为PushConsumer,和PullConsume
转载
2024-04-08 13:50:46
219阅读
消息队列有两种消息模型,分别是队列模型和发布/订阅模型。队列模型队列模型是最开始的一种消息队列模型,对应着消息队列“发-存-收”的模型。生产者往某个队列里面发送消息,一个队列可以存储多个生产者的消息,一个队列也可以有多个消费者,但是消费者之间是竞争关系,也就是说每条消息只能被一个消费者消费。发布/订阅模型如果需要将一份消息数据分发给多个消费者,并且每个消费者都要求收到全量的消息。很显然,队列模型无
转载
2024-03-26 13:08:30
76阅读
一、基本概念消息(Message)消息(Message)就是要传输的信息。一条消息必须有一个主题(Topic),主题可以看做是你的信件要邮寄的地址。主题(Topic)Topic表示一类消息的集合,每个主题包含若干条消息,每条消息只能属于一个主题。一个生产者可以同时发送多种Topic消息,而一个消费者只能对某种特定的Topic感兴趣,即只可以订阅和消息一种Topic的消息。topic :messag
转载
2024-04-01 14:38:00
3628阅读
作者:kinnylee来源:https://0x9.me/wPORU背景介绍项目组使用阿里RocketMQ,对同一个消费组设置不同的tag订阅关系,出现消息丢失的问题,本文从rocketmq源码研究消息发布与订阅原理,并分析导致该问题的原因。官方说明告诉使用者:同一个消费组,必须保持订阅关系一致为什么?它没有说!只能从源码找答案 问题复现1.启动消费者1,消费组为group1,订阅topi
1、TAG过滤消费在Producer中使用Tag:Message msg = new Message("TopicTest","TagA" ,("Hello RocketMQ " ).getBytes(RemotingHelper.DEFAULT_CHARSET));在Consumer中订阅Tag:consumer.subscribe("TopicTest", "TagA||TagB");// *
转载
2024-05-15 13:57:20
85阅读
Topic消息主题,一级消息类型,通过 Topic 对消息进行分类。详情请见Topic 与 Tag 最佳实践。Message消息,消息队列中信息传递的载体。Message ID消息的全局唯一标识,由消息队列 RocketMQ 系统自动生成,唯一标识某条消息。Message Key消息的业务标识,由消息生产者(Producer)设置,唯一标识某个业务逻辑。Tag消息标签,二级消息类型,用来进一步区分
转载
2024-06-28 00:52:16
107阅读
RocketMQ中的专业术语Topic topic表示消息的第一级类型,比如一个电商系统的消息可以分为:交易消息、物流消息…… 一条消息必须有一个Topic。Tag Tag表示消息的第二级类型,比如交易消息又可以分为:交易创建消息,交易完成消息….. 一条消息可以没有Tag。RocketMQ提供2级消息分类,方便大家灵活控制。Queue 一个topic下,我们可以设置多个queue(消息队列)。
转载
2024-03-25 15:30:25
138阅读
一、技术架构 RocketMq技术架构上主要分为4个部分:NameServer,Producer,Consumer,BrokerServer。NameServer:Topic路由注册中心。主要包括两个功能:1)broker管理,支持broker动态注册与发现,心跳检测broker存活情况。2)路由信息管理,保存broker、队列信息Producer:消息发布角色Consumer:消息消费角色Br
转载
2024-04-03 15:49:34
179阅读
文章目录一、顺序消息二、顺序消息消费过程1、消息队列负载2、消息拉取3、消息消费4、消息进度存储三、总结 一、顺序消息 RocketMq在同一个队列中可以保证消息被顺序消费,所以如果要做到消息顺序消费,可以将消费主题(topic)设置成一个队列。二、顺序消息消费过程 同普通消息一样,顺序消息消费需要经历4个步骤:消息队列负载、消息拉取、消息消费、消息进度存储。1、消息队列负载 消息队列负载
消息发送首先来看一个RcoketMQ发送消息的例子:@Service
public class MQService {
@Autowired
DefaultMQProducer defaultMQProducer;
public void sendMsg() {
String msg = "我是一条消息";
// 创建消息,指定TOPIC
转载
2024-06-23 09:56:49
323阅读
1、抛出问题一个新的消费组订阅一个已存在的Topic主题时,消费组是从该Topic的哪条消息开始消费呢?首先翻阅DefaultMQPushConsumer的API时,setConsumeFromWhere(ConsumeFromWhere consumeFromWhere)API映入眼帘,从字面意思来看是设置消费者从哪里开始消费,正是解开该问题的”钥匙“。ConsumeFromWhere枚举类图如
转载
2024-04-10 10:17:38
196阅读
MQ安装部署最新版本下载:http://rocketmq.apache.org/release_notes修改配置vi conf/broker.conf添加brokerIP1brokerIP1=192.168.0.1brokerIP1:配置broker所在服务器的ip地址,以便Name Server连接修改 runserver.sh 和 runbroker.shrunserver.shJAVA_O
转载
2024-05-21 13:54:00
123阅读
在手机上相信都有来自服务器的推送消息,比如一些及时的新闻信息,这篇文章主要就是实现这个功能,只演示一个基本的案例。使用的是websocket技术。一.什么是websocketWebSocket协议是基于TCP的一种新的网络协议。它实现了客户端与服务器全双工通信,学过计算机网络都知道,既然是全双工,就说明了服务器可以主动发送信息给客户端。这与我们的推
转载
2024-09-23 20:00:53
140阅读