![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
rocketMQ
龚厂长
这个作者很懒,什么都没留下…
展开
-
RocketMQ-顺序消息原理详解(下)
本文主要介绍顺序消息如何处理消费位移,以及顺序消息的优缺点。在上一篇文章介绍顺序消息原理时,有一些内容没有做介绍,比如顺序消息如何记录消费位移,监听器MessageListenerOrderly方法的返回值有什么作用,ConsumeOrderlyContext的autoCommit起什么作用。其实这些疑问都和消费位移有关。对于顺序消息的优点显而易见,可以保证消息的顺序型,确保数据处理的准确无误。这里主要想说的是它的缺点:原创 2020-12-26 11:39:37 · 753 阅读 · 2 评论 -
RocketMQ-顺序消息原理详解(上)
本文基于RocketMQ 4.7.1版本rocketmq提供了顺序消息的功能,可以保证消息以生产的顺序被消费,用官网上的话就是“FIFO order”。该功能在某些场景下非常有用,比如mysql的binlog日志,还有订单处理场景,订单的生成、支付、撤销必须是有序的。本文将首先给出一个顺序消息的例子,然后基于该例子介绍顺序消息的原理。文章目录一、为什么会出现消息乱序消费二、顺序消息代码示例一、为什么会出现消息乱序消费rocketmq的一个主题下可以创建多个队列,二、顺序消息代码示例本文提供.原创 2020-12-24 12:47:26 · 2372 阅读 · 5 评论 -
RocketMQ-详解消费者消费失败后重新消费原理
本文基于RocketMQ 4.7.1版本前面两篇文章介绍了DefaultMQPushConsumer和DefaultMQPullConsumer消费消息的原理,由此我们知道了DefaultMQPushConsumer消费消息相当于全自动,开发人员只需要创建好监听器即可,其他的问题都由rocketmq自动处理;DefaultMQPullConsumer相当于手动,这给开发人员提供了极大的自由度,但也带来了编程上的困难,需要开发人员自己维护消费位移,判断消费失败是否重新消费。本文主要介绍Defa.原创 2020-12-20 17:00:21 · 4866 阅读 · 5 评论 -
RocketMQ-DefaultMQPullConsumer消费消息原理详解
本文基于RocketMQ 4.7.1版本在文章《RocketMQ-如何创建消费者》中展示如何使用DefaultMQPullConsumer与DefaultMQPushConsumer消费消息。DefaultMQPullConsumer与DefaultMQPushConsumer相比最大的区别是,消费哪些队列的消息,从哪个位移开始消费,以及何时提交消费位移都是由程序自己的控制的。这给开发带来了极大的自由,同时由于都是自己维护,也给编程工作带来了困难。首先我们将《RocketMQ-如何创建消费者》文章中.原创 2020-12-13 18:32:08 · 2123 阅读 · 0 评论 -
RocketMQ-DefaultMQPushConsumer消费消息原理详解
本文基于RocketMQ 4.7.1版本在上一篇文章介绍了如何创建消费者,本文来分析一下DefaultMQPushConsumer是如何消费消息的。本文首先介绍DefaultMQPushConsumer的启动流程,之后介绍它是如何从broker拉取消息,最后介绍broker如何根据消费者的请求从消息文件中取出消息并发送。文章目录一、启动DefaultMQPushConsumer1、检查配置2、PullAPIWrapper3、ConsumeMessageConcurrentlyService二、消费.原创 2020-12-13 10:55:03 · 4803 阅读 · 1 评论 -
RocketMQ-如何创建消费者
本文基于RocketMQ 4.7.1版本rocketmq提供了两个类用于消费消息,分别是DefaultMQPullConsumer和DefaultMQPushConsumer,下面分别介绍如何使用这两个类。文章目录一、DefaultMQPushConsumer二、DefaultMQPullConsumer一、DefaultMQPushConsumerpublic static void main(String[] args) throws MQClientException { //创建.原创 2020-12-12 11:26:47 · 5648 阅读 · 0 评论 -
RocketMQ-broker创建主题原理详解
本文基于RocketMQ 4.7.1版本消息的发送和接收都要有对应的主题,所以使用rocketmq前需要完成主题的创建。rocketmq提供了两种创建主题的方式,一种是通过mqadmin工具创建,另一种是通过broker自动创建。下面分别介绍这两种方式以及背后的原理。文章目录一、创建主题1、mqadmin一、创建主题1、mqadminmqadmin工具是rocketmq提供的命令行管理工具,可以完成主题的创建修改删除,还有更新broker配置等操作,其位于rocketmq的bin目录下。本文只.原创 2020-12-12 03:22:33 · 2702 阅读 · 0 评论 -
RocketMQ-broker如何将收到的生产者消息保存到文件
本文基于RocketMQ 4.7.1版本上一篇文章介绍了broker的启动,本文介绍broker如何处理收到生产者消息。文章目录一、进入处理器前的准备一、进入处理器前的准备rocketmq在将消息交给SendMessageProcessor前,要做一些准备工作:解析请求报文,得到请求的类型,rocketmq根据类型找到对应的处理器,也就是SendMessageProcessor;创建一个Runnable对象,在该对象的run方法里面有对处理器的调用逻辑,在下面介绍该对象,可以认为这里使用了.原创 2020-12-10 22:47:14 · 681 阅读 · 0 评论 -
RocketMQ-broker启动流程详解
本文基于RocketMQ 4.7.1版本本文将从整体上分析broker如何启动。文章目录一、broker启动1、createBrokerController()2、start()一、broker启动broker的启动类是BrokerStartup,其main方法如下: public static void main(String[] args) { start(createBrokerController(args)); }createBrokerControlle.原创 2020-12-06 20:23:06 · 2708 阅读 · 0 评论 -
RocketMQ-生产者启动并发送普通消息流程详解
本文基于RocketMQ 4.7.1版本本文将从整体上分析生产者启动以及如何将消息发送出去。文章目录一、生产者启动二、消息发送一、生产者启动用于发送消息的生产者对象必须实现接口MQProducer。MQProducer的实现类只有两个:DefaultMQProducer和TransactionMQProducer。TransactionMQProducer用于事务消息,本文只对普通消息发送流程分析,事务消息以后文章介绍。一般的,生产者发送消息的代码如下: DefaultMQProducer.原创 2020-12-06 14:23:18 · 975 阅读 · 2 评论 -
RocketMQ安装部署详解
文章目录一、RocketMQ简介二、消息队列优点三、安装步骤1、环境要求2、下载3、Linux环境安装4、Windows环境安装5、程序访问一、RocketMQ简介RocektMQ是阿里巴巴在2012年开源的一个纯java、分布式消息中间件。RocektMQ具有低延迟、高性能、可靠性、万亿级别的容量和灵活的可伸缩性。2016年阿里巴巴将RocketMQ捐赠给Apache,2017年9月RocketMQ正式从Apache社区正式毕业,成为Apache顶级项目。二、消息队列优点消息队列的有应用解耦、流量原创 2020-10-24 22:07:36 · 7837 阅读 · 3 评论