![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
rocketmq
文章平均质量分 86
苏雨丶
擅长主流开源框架源码
展开
-
RocketMQ 事务消息源码分析 (RocketMQ系列八)
之前已经讲过了普通消息的发送流程,事务消息只是在普通消息的基础上做了一些操作,消息在Producer端发送以后(这里叫半消息),Broker收到消息以后,会判断是否是事务消息,如果是事务消息会替换掉消息的Topic为事务的消息主题,将原本的消息主题和队列信息封装到消息中,等客户端执行完本地事务代码后,告诉Broker半消息是提交还是回滚。提交就是将事务半消息移到目标Topic的队列中,然后客户端就能消费到该消息。回滚的话就是将消息移到系统的另一个操作队列中,标记消息为删除,Consumer永远也消费不到该消原创 2022-07-11 15:43:53 · 601 阅读 · 0 评论 -
RocketMQ pull方式消费消息,无需手动维护offset、集群负载
前言平常我们在使用RocketMQ消息队列消费时,基本使用的都是push模式,有些时候我们也需要通过pull方式来实现我们的功能。我们都知道RocketMQ的push模式底层就是使用的pull模式来实现的,所以我们其实可以自己来实现一些push的功能。别的不说,比较忙。直接上代码。亮点1.实现了push模式的offset、如果不实现这个功能,我们需要自己手动去维护这个offset、我想要一个一劳永逸的办法,不想自己去维护,我们知道push模式就是RocketMQ自己帮我们维护了,我通过源码,调用了pu原创 2021-04-20 19:11:44 · 1492 阅读 · 0 评论 -
RocketMQ Consumer的Push模式启动过程 (RocketMQ系列七)
Consumer启动流程前言上一篇讲了RocketMQ在消息发送的流程,这一篇开始讲Consumer的启动流程,看下Consumer在启动的过程中做了哪些事情。Consumer端消费代码下面是consumer并发消费时的代码,主要分为了Consumer的初始化,以及注册消息并发消费的监听器,最后就是启动consumerDefaultMQPushConsumer consumer = new DefaultMQPushConsumer(CONSUMER_GROUP);consumer.setN原创 2021-01-31 18:55:30 · 839 阅读 · 0 评论 -
RocketMQ消息发送流程 (RocketMQ系列六)
前言上一篇我们讲了Broker的启动流程,我们对Broker在启动阶段做的一些事情有了充分的了解,这一篇我们开始讲Producer的初始化和启动过程以及消息发送过程以及Broker接受到消息请求的处理过程。Producer端发送流程下面是producer发送一条简单消息的代码,我们一句句来分析,看下具体做了哪些事情//初始化发送消息的线程池DefaultMQProducer producer = new DefaultMQProducer("test-group"); //1producer.s原创 2021-01-24 16:57:36 · 666 阅读 · 0 评论 -
RocketMQ Broker启动流程(RocketMQ系列五)
Broker启动流程前言今天我们讲Broker的启动流程,讲完这篇以后,大家对Broker启动做的事情有一个清晰的认识,这个源码是我自己一点一点啃得,有点硬,后面再整理代码注释的时候,参考了一些博客,我尽可能的说的清楚一些,我表达和总结能力比较弱,有些地方说的可能不清楚,大家可以给我留言,我看到了都会回复的。源码Idea启动Broker找到Broker的启动类,BrokerStartup,然后编辑main方法,修改启动参数,如下图所示环境目录会在下图所示的包中具体配置:ROCKETMQ_原创 2021-01-16 20:42:51 · 1879 阅读 · 0 评论 -
RocketMQ消费者的负载均衡策略详解(RocketMQ系列四)
RocketMQ消费负载策略Consumer在拉取消息之前需要对TopicMessage进行负载操作,负载操作由一个定时器来完成单位,定时间隔默认20s简单来说就是将Topic下的MessageQueue分配给这些Consumer,至于怎么分,就是通过这些负载策略定义的算法规则来划分。AllocateMessageQueueAveragely平均负载策略,RocketMQ默认使用的就是这种方式,如果某个Consumer集群,订阅了某个Topic,Topic下面的这些MessageQueue会被平均分原创 2021-01-08 18:33:52 · 8946 阅读 · 4 评论 -
RocketMQ整合SpringBoot(RocketMQ系列三)
前言上一篇我们讲了消息的发送和消息消费的一些知识,本篇我们开始讲RocketMQ整合SpringBoot。RocketMQ整合SpringBoot我会讲两种整合SpringBoot的方式,一种使用SpringBoot的starter来整合,另外一种我们自己整合,相对来说,Starter整合方式更加单,不过技多不压身嘛,两种都学习一下。Starter方式整合pom.xml文件<!-- web --><dependency> <groupId>org.spr原创 2021-01-05 14:00:38 · 398 阅读 · 0 评论 -
RocketMQ消息发送和消费相关知识(RocketMQ系列二)
前言上一篇讲了RocketMQ的安装和简单测试了系统自带的测试,本篇将开始讲RocketMQ的api使用、消息发送方式、消费模式,消息的类型。消息//消息Topicprivate String topic;//消息标记 0表示非事务消息private int flag;//一些额外属性,消息tag,key等private Map<String, String> properties;//消息体private byte[] body;//事务消息传递到消息idprivate原创 2021-01-01 20:05:30 · 696 阅读 · 0 评论 -
RocketMQ的安装、角色介绍(RocketMQ系列一)
前言最近一直在学RocketMQ的东西,为了加深对它的印象,决定写一个关于RocketMQ的主题博客,博客会涉及RocketMQ从安装、到使用、集群、以及各种原理源码。笔者水平有限,说的不对的地方,还希望各位老哥能够指出来,毕竟误人子弟不是我的初衷,我也是希望对读者们有一些帮助。简介RocketMQ是一个分布式消息中间件,最初是由阿里团队开发的,经过一系列的迭代升级,经历了淘宝双十一的大流量考验,很多小伙伴可能比较好奇市面上已经有了很多成熟的消息中间件、ActiveMQ、Kafka、RabbitMQ等原创 2020-12-30 16:22:19 · 248 阅读 · 0 评论 -
Linux服务器RocketMQ和可视化界面外网安装
下载RocketMQ的安装包我们这里安装的版本是4.7.1,我们下载安装包就行,源码包需要编译,编译完还是得到安装包点击下面链接下载https://rocketmq.apache.org/release_notes/release-notes-4.7.1/原创 2020-10-30 11:25:55 · 732 阅读 · 0 评论