zl程序教程

RocketMQ学习1

  • 读 RocketMQ 源码,学习并发编程三大神器

    读 RocketMQ 源码,学习并发编程三大神器

    笔者是 RocketMQ 的忠实粉丝,在阅读源码的过程中,学习到了很多编程技巧。这篇文章,笔者结合 RocketMQ 源码,分享并发编程三大神器的相关知识点。 1 CountDownLatch 实现网络同步请求CountDownLatch 是一个同步工具类,用来协调多个线程之间的同步,它能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。下图是 CountDownLatch 的核心方法:

    日期 2023-06-12 10:48:40     
  • 【RocketMQ源码学习错误已解决】之broker启动一直报错。错误code-3。

    【RocketMQ源码学习错误已解决】之broker启动一直报错。错误code-3。

    【RocketMQ源码学习】之broker启动一直报错。报错一直提示退出code为-3解决办法。下载rocketmq源码后,配置好broker.conf文件,启动broker时候报错:错误code为-3.先来看看凯哥的broker.conf配置文件信息: brokerClusterName = DefaultCluster brokerName = broker-a brokerId = 0 # 

    日期 2023-06-12 10:48:40     
  • 【RocketMQ源码学习】RocketMQ源码学习之环境搭建

    【RocketMQ源码学习】RocketMQ源码学习之环境搭建

    RocketMQ是开源的。git地址:https://github.com/apache/rocketmq注意:依赖环境:JDK1.8+;maven;idea.从git检出源码后,源码目录结构:● broker: broker 模块(broke 启动进程)● client :消息客户端,包含消息生产者、消息消费者相关类● common :公共包● dev :开发者信息(非源代码)● distrib

    日期 2023-06-12 10:48:40     
  • RocketMQ源码学习:一、概述与部署启动

    RocketMQ源码学习:一、概述与部署启动

    背景随着业务的快速发展,业务越来越复杂,服务之间相互调用形成复杂的控制关系、调用关系和数据传递关系。服务联系越多,耦合性越强。为了使服务高内聚低耦合,提高服务的高可用性,就需要对服务进行异步解耦。RocketMQ就是服务解耦的时候常用一种解决方案。介绍RocketMQ是阿里开源的一个优秀成熟的产品,我们可以使用RocketMQ作为服务间异步通信的中间件。随着业务的并发吞吐量上升,也可以使用Rock

    日期 2023-06-12 10:48:40     
  • RocketMQ学习(一):简介和QuickStart

    RocketMQ学习(一):简介和QuickStart

    RocketMQ是一款分布式、队列模型的消息中间件,具有以下特点: 支持严格的消息顺序 支持Topic与Queue两种模式 亿级消息堆积能力 比较友好的分布式特性 同时支持Push与Pull方式消费消息 历经多次天猫双十一海量消息考验 RocketMQ是纯java编写,基于通信框架Netty。 代码地址:https://github.com/alibaba/RocketMQ,目前分

    日期 2023-06-12 10:48:40     
  • RocketMQ学习(二):依赖关系和模块功能介绍

    RocketMQ学习(二):依赖关系和模块功能介绍

    现在看的代码版本还是3.2.2 develop。先看张内部结构代码图: 从依赖层次再来看,越是被依赖的,越在底层: rocketmq包含9个子模块: rocketmq-common:通用的常量枚举、基类方法或者数据结构,按描述的目标来分包通俗易懂。包名有:admin,consumer,filter,hook,message等。 rocketmq-remoting:用Netty4

    日期 2023-06-12 10:48:40     
  • RocketMQ学习(三):rocketmq-namesrv介绍

    RocketMQ学习(三):rocketmq-namesrv介绍

    刚刚拉了最新的代码,版本是3.2.6,直接NamesrvStartup类的main()方法启动,不需要带启动参数,启动序列图如下: 当broker,producer,consumer都运行后,namesrv一共有8类线程: 1.ServerHouseKeepingService:守护线程,本质是ChannelEventListener,监听broker的channel变化来更新本地的Rou

    日期 2023-06-12 10:48:40     
  • RocketMQ学习(四):rocketmq-filtersrv介绍和filter原理

    RocketMQ学习(四):rocketmq-filtersrv介绍和filter原理

    源代码版本是3.2.6,还是直接跑源代码,启动配置参照前面写的《简介和quickstart》,启动顺序是namesrv,broker,filtersrv,filter和broker有顺序要求,如果filtersrv启动后找不到broker,则会System.exit()退出程序。 看下启动图: 看rocketmq-filtersrv代码,核心processor包下的只有一个Class类且只

    日期 2023-06-12 10:48:40     
  • RocketMQ学习(五):Pull和Push

    RocketMQ学习(五):Pull和Push

    源代码版本是3.2.6。在rocketmq里,consumer被分为2类:MQPullConsumer和MQPushConsumer,其实本质都是拉模式(pull),即consumer轮询从broker拉取消息。 区别是: push方式里,consumer把轮询过程封装了,并注册MessageListener监听器,取到消息后,唤醒MessageListener的consumeMessage(

    日期 2023-06-12 10:48:40     
  • RocketMQ学习(六):消息的生命周期上之消息的产生

    RocketMQ学习(六):消息的生命周期上之消息的产生

    源代码版本是3.2.6。消息的生命周期包括2部分,消息的产生和消息的消费,这篇先说下前者。消息的产生详细一点可以分为: a.消息产生后由Producer发送至Broker。 b.Broker接收到消息做持久化。 调试代码得到这样的过程, 1.DefaultMQProducer.send()发出消息。 2.DefaultMQProducerImpl.sendDefaultImpl()发出消

    日期 2023-06-12 10:48:40     
  • RocketMQ学习(七):消息的生命周期下之消息的消费

    RocketMQ学习(七):消息的生命周期下之消息的消费

    源代码版本是3.2.6。接着上一篇消息的产生,这篇是消息的消费。Consumer选择DefaultMQPushConsumer为例。 1.DefaultMQPushConsumer.start()开始。 2.RebalanceService.run()方法定时调用RebalanceImpl.doRebalance()方法,该方法内部是遍历订阅的topic,执行rebalanceByTopic(

    日期 2023-06-12 10:48:40     
  • RocketMQ学习(八):事务消息

    RocketMQ学习(八):事务消息

    源代码版本是3.2.6,还是直接跑源代码。rocketmq事务消息是发生在Producer和Broker之间,是二阶段提交。 二阶段提交过程看图: 第一阶段是:步骤1,2,3。 第二阶段是:步骤4,5。 具体说明: 只有在消息发送成功,并且本地操作执行成功时,才发送提交事务消息,做事务提交。 其他的情况,例如消息发送失败,直接发送回滚消息,进行回滚,或者发送消息成功,但是执行本地操

    日期 2023-06-12 10:48:40     
  • RocketMQ学习(九):顺序消息

    RocketMQ学习(九):顺序消息

    import java.util.List; import com.alibaba.rocketmq.client.exception.MQBrokerException; import com.alibaba.rocketmq.client.exception.MQClientException; import com.alibaba.rocketmq.client.producer.De

    日期 2023-06-12 10:48:40     
  • RocketMQ学习(一):简介和QuickStart

    RocketMQ学习(一):简介和QuickStart

    RocketMQ是一款分布式、队列模型的消息中间件,具有以下特点: 支持严格的消息顺序 支持Topic与Queue两种模式 亿级消息堆积能力 比较友好的分布式特性 同时支持Push与Pull方式消费消息 历经多次天猫双十一海量消息考验 RocketMQ是纯java编写,基于通信框架Netty。 代码地址:https://github.com/alibaba/RocketMQ,目前分

    日期 2023-06-12 10:48:40     
  • RocketMQ学习(二):依赖关系和模块功能介绍

    RocketMQ学习(二):依赖关系和模块功能介绍

    现在看的代码版本还是3.2.2 develop。先看张内部结构代码图: 从依赖层次再来看,越是被依赖的,越在底层: rocketmq包含9个子模块: rocketmq-common:通用的常量枚举、基类方法或者数据结构,按描述的目标来分包通俗易懂。包名有:admin,consumer,filter,hook,message等。 rocketmq-remoting:用Netty4

    日期 2023-06-12 10:48:40     
  • RocketMQ学习(三):rocketmq-namesrv介绍

    RocketMQ学习(三):rocketmq-namesrv介绍

    刚刚拉了最新的代码,版本是3.2.6,直接NamesrvStartup类的main()方法启动,不需要带启动参数,启动序列图如下: 当broker,producer,consumer都运行后,namesrv一共有8类线程: 1.ServerHouseKeepingService:守护线程,本质是ChannelEventListener,监听broker的channel变化来更新本地的Rou

    日期 2023-06-12 10:48:40     
  • RocketMQ学习(四):rocketmq-filtersrv介绍和filter原理

    RocketMQ学习(四):rocketmq-filtersrv介绍和filter原理

    源代码版本是3.2.6,还是直接跑源代码,启动配置参照前面写的《简介和quickstart》,启动顺序是namesrv,broker,filtersrv,filter和broker有顺序要求,如果filtersrv启动后找不到broker,则会System.exit()退出程序。 看下启动图: 看rocketmq-filtersrv代码,核心processor包下的只有一个Class类且只

    日期 2023-06-12 10:48:40     
  • RocketMQ学习(五):Pull和Push

    RocketMQ学习(五):Pull和Push

    源代码版本是3.2.6。在rocketmq里,consumer被分为2类:MQPullConsumer和MQPushConsumer,其实本质都是拉模式(pull),即consumer轮询从broker拉取消息。 区别是: push方式里,consumer把轮询过程封装了,并注册MessageListener监听器,取到消息后,唤醒MessageListener的consumeMessage(

    日期 2023-06-12 10:48:40     
  • RocketMQ学习(六):消息的生命周期上之消息的产生

    RocketMQ学习(六):消息的生命周期上之消息的产生

    源代码版本是3.2.6。消息的生命周期包括2部分,消息的产生和消息的消费,这篇先说下前者。消息的产生详细一点可以分为: a.消息产生后由Producer发送至Broker。 b.Broker接收到消息做持久化。 调试代码得到这样的过程, 1.DefaultMQProducer.send()发出消息。 2.DefaultMQProducerImpl.sendDefaultImpl()发出消

    日期 2023-06-12 10:48:40     
  • RocketMQ学习(七):消息的生命周期下之消息的消费

    RocketMQ学习(七):消息的生命周期下之消息的消费

    源代码版本是3.2.6。接着上一篇消息的产生,这篇是消息的消费。Consumer选择DefaultMQPushConsumer为例。 1.DefaultMQPushConsumer.start()开始。 2.RebalanceService.run()方法定时调用RebalanceImpl.doRebalance()方法,该方法内部是遍历订阅的topic,执行rebalanceByTopic(

    日期 2023-06-12 10:48:40     
  • RocketMQ学习(八):事务消息

    RocketMQ学习(八):事务消息

    源代码版本是3.2.6,还是直接跑源代码。rocketmq事务消息是发生在Producer和Broker之间,是二阶段提交。 二阶段提交过程看图: 第一阶段是:步骤1,2,3。 第二阶段是:步骤4,5。 具体说明: 只有在消息发送成功,并且本地操作执行成功时,才发送提交事务消息,做事务提交。 其他的情况,例如消息发送失败,直接发送回滚消息,进行回滚,或者发送消息成功,但是执行本地操

    日期 2023-06-12 10:48:40     
  • RocketMQ学习(九):顺序消息

    RocketMQ学习(九):顺序消息

    import java.util.List; import com.alibaba.rocketmq.client.exception.MQBrokerException; import com.alibaba.rocketmq.client.exception.MQClientException; import com.alibaba.rocketmq.client.producer.De

    日期 2023-06-12 10:48:40     
  • RocketMQ事务消息学习及刨坑过程

    RocketMQ事务消息学习及刨坑过程

    一、背景 MQ组件是系统架构里必不可少的一门利器,设计层面可以降低系统耦合度,高并发场景又可以起到削峰填谷的作用,从单体应用到集群部署方案,再到现在的微服务架构,MQ凭借其优秀的性能和高可靠性,得到了广泛的认可。随着数据量增多,系统压力变大,开始出现这种现象:数据库已经更新了,但消息没发出来,或者消息先发了,但后来数据库更新失败了,结果研发童鞋各种数据修复,这种生产问题出现的概率不大,但让人很郁

    日期 2023-06-12 10:48:40