基于RocketMQ release-4.9.3,深入的介绍了Broker接收消息源码入口。此前我们学习了RocketMQ的Producer发送消息的源码,首先会查找查找topic的发布信息,然后找到一个消息队列MessageQueue,默认是轮询的选择,MessageQueue中存储着对应的brokerName,通过brokerName就能找到具体的brokerIP,随后获取producer客户            
                
         
            
            
            
            在上篇中,了解RocketMQ的基本概念,以及安装好RocketMQ,启动后。进行代码实际操作练习本篇主要练习三种发送方式一、基础项目创建需要创建两个项目,来表示消费者和生产者创建两个SpringBoot项目,并导入maven和配置好application.yamlmaven需要导入rocketmq-common、rocketmq-client、fastjson<dependencies&g            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-14 06:46:40
                            
                                2005阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文章目录一、顺序消息二、顺序消息消费过程1、消息队列负载2、消息拉取3、消息消费4、消息进度存储三、总结 一、顺序消息  RocketMq在同一个队列中可以保证消息被顺序消费,所以如果要做到消息顺序消费,可以将消费主题(topic)设置成一个队列。二、顺序消息消费过程  同普通消息一样,顺序消息消费需要经历4个步骤:消息队列负载、消息拉取、消息消费、消息进度存储。1、消息队列负载  消息队列负载            
                
         
            
            
            
             前言分布式消息选型的时候是否支持事务消息是一个很重要的考量点,而目前只有RocketMQ对事务消息支持的最好。今天我们来唠唠如何实现RocketMQ的事务消息!Apache RocketMQ在4.3.0版中已经支持分布式事务消息,这里RocketMQ采用了2PC的思想来实现了提交事务消息,同时增加一个补偿逻辑来处理二阶段超时或者失败的消息,如下图所示。RocketMQ事务流程概要Roc            
                
         
            
            
            
            消息发送首先来看一个RcoketMQ发送消息的例子:@Service
public class MQService {
    @Autowired
    DefaultMQProducer defaultMQProducer;
    public void sendMsg() {
        String msg = "我是一条消息";
        // 创建消息,指定TOPIC            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-23 09:56:49
                            
                                323阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            rocketMQ版本:4.5.2本次只是简单从rocketmq example里quickstart的producer例子进入,了解下消息发送的一个简单流程,一些比较复杂的流程会在后续学习中继续以新文章记录。 首先,从例子中可以看到要先启动producer。进入start方法,查看相应的启动流程。----- DefaultMQProducerImpl start继续进入DefaultMQProdu            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-14 09:33:43
                            
                                112阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            上篇博客介绍过Producer的启动,这里涉及到相关内容就不再累赘了 【RocketMQ中Producer的启动源码分析】 Producer发送消息,首先需要生成Message实例:1 public class Message implements Serializable {
 2     private static final long serialVersionUID = 844            
                
         
            
            
            
            RocketMQUtilprivate static Message getAndWrapMessage(String destination, MessageHeaders headers, byte[] payloads) {	if (destination == null || destination.length() < 1) {		return null;	}	if (payloads == null || payloads.length < 1) {		return nu            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-11-11 10:32:41
                            
                                422阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            RocketMQUtilprivate static Message getAndWrapMessage(String destination, MessageHeaders headers, byte[] payloads) {	if (destination == null || destination.length() < 1) {		return null;	}	if (payloads == null || payloads.length < 1) {		return nu            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-01-12 15:11:41
                            
                                287阅读
                            
                                                                             
                 
                
                             
         
            
            
            
                 在手机上相信都有来自服务器的推送消息,比如一些及时的新闻信息,这篇文章主要就是实现这个功能,只演示一个基本的案例。使用的是websocket技术。一.什么是websocketWebSocket协议是基于TCP的一种新的网络协议。它实现了客户端与服务器全双工通信,学过计算机网络都知道,既然是全双工,就说明了服务器可以主动发送信息给客户端。这与我们的推            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-23 20:00:53
                            
                                140阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            https://github.com/apache/rocketmq/tree/master/docs/cn一基本概念 1.1.1.RocketMQ有三部分组成:produce,broker,consumer	1.1.2.RocketMQ多种发送方式,同步发送、异步发送、顺序发送、单向发送。同异步需要返回确认信息	1.1.3.两种消费形式:拉取式消费(主动性)、推动式消费(实时性)。	1.1.4.            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-25 10:22:00
                            
                                255阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            RocketMQ - 消息收发3.0) 消息发送与接收开发流程谁来发?发给谁?怎么发?发什么?发的结果是什么?打扫战场3.1) 基于Java环境构建消息发送与消息接收基础程序3.1.1) 单生产者单消费者(OneToOne)生产者步骤1:导入坐标<dependencies>
        <dependency>
            <groupId>or            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-19 17:16:32
                            
                                164阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、技术架构  RocketMq技术架构上主要分为4个部分:NameServer,Producer,Consumer,BrokerServer。NameServer:Topic路由注册中心。主要包括两个功能:1)broker管理,支持broker动态注册与发现,心跳检测broker存活情况。2)路由信息管理,保存broker、队列信息Producer:消息发布角色Consumer:消息消费角色Br            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-03 15:49:34
                            
                                179阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            RocketMQ中的专业术语Topic topic表示消息的第一级类型,比如一个电商系统的消息可以分为:交易消息、物流消息…… 一条消息必须有一个Topic。Tag Tag表示消息的第二级类型,比如交易消息又可以分为:交易创建消息,交易完成消息….. 一条消息可以没有Tag。RocketMQ提供2级消息分类,方便大家灵活控制。Queue 一个topic下,我们可以设置多个queue(消息队列)。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-25 15:30:25
                            
                                138阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            前两章内容中,介绍了Producer的启动过程,然后是如何创建topic,本章内容将主要集中在如何发送消息到broker  一、消息的投递消息的投递分为普通消息的投递和事务消息的投递public class DefaultMQProducer extends ClientConfig implements MQProducer{
    // 所有的实际操作委托给这个实现            
                
         
            
            
            
            一、磁盘文件结构1.1文件简介RocketMQ的Broker机器磁盘上的文件存储结构CommitLog:消息主体以及元数据的存储主体,存储Producer端写入的消息主体内容。单个文件大小默认1G,文件名长度为20位,左边补零,剩余为起始偏移量,比如00000000000000000000代表了第一个文件,起始偏移量为0,文件大小为1G=1073741824;当第一个文件写满了,第二个文件为000            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-29 11:44:10
                            
                                125阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            概述    这篇文章的目的主要是为了讲清楚rocketMq消息堆积的概念,我印象中的rocketMq的消息堆积应该分为两层,一层是broker中实际写入消息量和consumeQueue已经消费位移的偏差,另外一层consumer端本身已经拉取消息的堆积,而今天要讲的正是后者。    这个问题的起源是当时有个其他公司的同事遇到consume            
                
         
            
            
            
            一、初识RocketMQ        我们平时使用一些体育新闻软件,会订阅自己喜欢的一些球队板块,当有作者发表文章到相关的板块,我们就能收到相关的新闻推送。        发布-订阅(Pub/Sub)是一种消息范式,消息的发送者(称为发布            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-15 00:14:38
                            
                                159阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1. Demo以下代码是RocketMQ源码中example包中的示例代码producerproducer端在发送消息时可以在构造消息时指定tagpublic class TagFilterProducer {
    public static void main(String[] args) throws Exception {
        DefaultMQProducer prod            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-11 10:33:24
                            
                                90阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1:特点1:支持集群模型,强调集群无单点,负载均衡以及水平扩展能力
2:亿级别的消息堆积能力
3:采用零拷贝原理 顺序写盘随机读
4:丰富的api
5:底层通信框架采用netty nio
6: nameserver 代替zookpeer
7:消息失败重试机制,消息可查询灵活可扩展性RocketMQ 天然支持集群,其核心四组件(Name Server、Broker、Producer、Consumer            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-15 11:05:13
                            
                                192阅读
                            
                                                                             
                 
                
                                
                    