 消息中间件RocketMQ原理解析 - 斩秋............................................... 49 一: NettyRemotingAbstract Server 与 Client 公用抽象类 ............................................... 49 1. invokeSyncImpl 同步调用实现 ..................... 随机选择一台 producer 查询消息,根据 commitLogOffset 和 msgSize 到 commitlog 查找消息 向 Producder 发起请求,请求 code 类型为 CHECK_TRANSACTION_STATE,producer 的 DefaultMQProducerImpl. checkTransactionState()方法来处理 broker 定时回调的请求, 的更新,后面有定时任务定时更 新到 broker 上去 六:pull 消息消费 消费者主动拉取消息消费,客户端通过类 DefaultMQPullConsumer 客户端可以指定特定 MessageQueue 也可以通过 DefaultMQPullConsumer. fetchMessageQueuesInBalance(topic)0 码力 | 57 页 | 2.39 MB | 1 年前3 消息中间件RocketMQ原理解析 - 斩秋............................................... 49 一: NettyRemotingAbstract Server 与 Client 公用抽象类 ............................................... 49 1. invokeSyncImpl 同步调用实现 ..................... 随机选择一台 producer 查询消息,根据 commitLogOffset 和 msgSize 到 commitlog 查找消息 向 Producder 发起请求,请求 code 类型为 CHECK_TRANSACTION_STATE,producer 的 DefaultMQProducerImpl. checkTransactionState()方法来处理 broker 定时回调的请求, 的更新,后面有定时任务定时更 新到 broker 上去 六:pull 消息消费 消费者主动拉取消息消费,客户端通过类 DefaultMQPullConsumer 客户端可以指定特定 MessageQueue 也可以通过 DefaultMQPullConsumer. fetchMessageQueuesInBalance(topic)0 码力 | 57 页 | 2.39 MB | 1 年前3
 Apache RocketMQ 从入门到实战年我又陆续发表了 20 几篇 关于 RocketMQ 相关的文章,这些文章含金量极高,不仅及时跟进了 RocketMQ4.3.0 之后的新特性:消息轨迹、ACL、主从切换等机制,更是发表了数篇实战类文章,详细指 出在生产环境下一些使用误区,更是输出了几篇生产环境真实故障与解决方案。最终于 20 19 年 RocketMQ 官方社区授予我优秀布道师荣誉称号。 RocketMQ 成就了我,我也会继续努力,为传播 况不符合,那成为一个开源项目的 Committer 有些什么条件呢? 1. 扎实的 Java 基础功底 一个开源项目的底层都会涉及到存储,这就要求具备一定的数据结构基础,JAVA 集 合框架中的类自然成为了我们突破数据结构最好的老师,其次是 java 并发,即多线程、并 发容器、锁等课题,这方面可以好好学习一下 JUC 框架。最后最好是具备一些网络方面的 知识,例如 NIO、Netty。 的学习,有使用需求,或许学习动力更强劲,学习效率更高效。 当具备一定的基础后,如何从零开始参与进开源项目呢?通常有如下几个方法:  看看官方文档,特别是设计手册,从整体上把握其设计理念。  写写源码分析类文章,从整体上把控这个框架,这个花费时间较多,如果框架正在起步。 阶段,不建议该方法;如果框架比较成熟,非常建议采用该方法。  尝试看看开源项目中的 issues,看能不能解决,从问题入手,快速融入该项目。0 码力 | 165 页 | 12.53 MB | 1 年前3 Apache RocketMQ 从入门到实战年我又陆续发表了 20 几篇 关于 RocketMQ 相关的文章,这些文章含金量极高,不仅及时跟进了 RocketMQ4.3.0 之后的新特性:消息轨迹、ACL、主从切换等机制,更是发表了数篇实战类文章,详细指 出在生产环境下一些使用误区,更是输出了几篇生产环境真实故障与解决方案。最终于 20 19 年 RocketMQ 官方社区授予我优秀布道师荣誉称号。 RocketMQ 成就了我,我也会继续努力,为传播 况不符合,那成为一个开源项目的 Committer 有些什么条件呢? 1. 扎实的 Java 基础功底 一个开源项目的底层都会涉及到存储,这就要求具备一定的数据结构基础,JAVA 集 合框架中的类自然成为了我们突破数据结构最好的老师,其次是 java 并发,即多线程、并 发容器、锁等课题,这方面可以好好学习一下 JUC 框架。最后最好是具备一些网络方面的 知识,例如 NIO、Netty。 的学习,有使用需求,或许学习动力更强劲,学习效率更高效。 当具备一定的基础后,如何从零开始参与进开源项目呢?通常有如下几个方法:  看看官方文档,特别是设计手册,从整体上把握其设计理念。  写写源码分析类文章,从整体上把控这个框架,这个花费时间较多,如果框架正在起步。 阶段,不建议该方法;如果框架比较成熟,非常建议采用该方法。  尝试看看开源项目中的 issues,看能不能解决,从问题入手,快速融入该项目。0 码力 | 165 页 | 12.53 MB | 1 年前3
 RocketMQ v3.2.4 开发指南的拉消息方法从 Broker 拉消息,主劢权由应用控制。  Producer Group 一类 Producer 的集合名称,返类 Producer 通常収送一类消息,丏収送逡辑一致。  Consumer Group 一类 Consumer 的集合名称,返类 Consumer 通常消费一类消息,丏消费逡辑一致。  Broker 消息中转角色,负责存储消息,转収消息,一般也称为 PTP,但是一个 Topic/Queue 可以被多个 Consumer Group 消费。  顺序消息 消费消息的顺序要同収送消息的顺序一致,在 RocketMQ 中,主要挃的是尿部顺序,即一类消息为满足顺 序性,必须 Producer 单线程顺序収送,丏収送到同一个队列,返样 Consumer 就可以挄照 Producer 収送 的顺序去消费消息。  普通顺序消息 顺序消息 RocketMQ 中,所有消息队列都是持丽化,长度无限的数据结构,所谓长度无限是挃队列中的每个存储 单元都是定长,访问其中的存储单元使用 Offset 来访问,offset 为 java long 类型,64 位,理论上在 100 年内丌会溢出,所以讣为是长度无限,另外队列中只保存最近几天的数据,乀前的数据会挄照过期时间来 删除。 也可以讣为 Message Queue 是一个长度无限的数组,offset0 码力 | 52 页 | 1.61 MB | 1 年前3 RocketMQ v3.2.4 开发指南的拉消息方法从 Broker 拉消息,主劢权由应用控制。  Producer Group 一类 Producer 的集合名称,返类 Producer 通常収送一类消息,丏収送逡辑一致。  Consumer Group 一类 Consumer 的集合名称,返类 Consumer 通常消费一类消息,丏消费逡辑一致。  Broker 消息中转角色,负责存储消息,转収消息,一般也称为 PTP,但是一个 Topic/Queue 可以被多个 Consumer Group 消费。  顺序消息 消费消息的顺序要同収送消息的顺序一致,在 RocketMQ 中,主要挃的是尿部顺序,即一类消息为满足顺 序性,必须 Producer 单线程顺序収送,丏収送到同一个队列,返样 Consumer 就可以挄照 Producer 収送 的顺序去消费消息。  普通顺序消息 顺序消息 RocketMQ 中,所有消息队列都是持丽化,长度无限的数据结构,所谓长度无限是挃队列中的每个存储 单元都是定长,访问其中的存储单元使用 Offset 来访问,offset 为 java long 类型,64 位,理论上在 100 年内丌会溢出,所以讣为是长度无限,另外队列中只保存最近几天的数据,乀前的数据会挄照过期时间来 删除。 也可以讣为 Message Queue 是一个长度无限的数组,offset0 码力 | 52 页 | 1.61 MB | 1 年前3
 Apache RocketMQ on Amazon Web Services中的 CentOS AMI。 13 Bastion Instance Type BastionInstanceType t2.micro 堡垒机实例的 EC2 实 例类型。 14 Number of Bastion Hosts NumBastionHosts 1 堡垒机数量。Auto Scaling 确保 您始终保持此数量的运⾏堡垒机 数量。 BrokerClusterCount 3 选择部署 Apache RocketMQ Broker 节点的数量。 17 IOPS Iops 100 如果您选择的是 io1 卷类型,此 设置为 EBS 卷的 IOPS,否则此选 项将被忽略。 18 RocketMQ Version RocketMQVersion 4.7.1 选择部署的 Apache NameServerInstanceType m5.large Nameserver 节点的 EC2 实例类 型 20 Broker Node Instance Type BrokerNodeInstanceType m5.xlarge Broker 节点 EC2 实例类型 21 Apache RocketMQ flush Disk Type FlushDiskType0 码力 | 18 页 | 1.55 MB | 1 年前3 Apache RocketMQ on Amazon Web Services中的 CentOS AMI。 13 Bastion Instance Type BastionInstanceType t2.micro 堡垒机实例的 EC2 实 例类型。 14 Number of Bastion Hosts NumBastionHosts 1 堡垒机数量。Auto Scaling 确保 您始终保持此数量的运⾏堡垒机 数量。 BrokerClusterCount 3 选择部署 Apache RocketMQ Broker 节点的数量。 17 IOPS Iops 100 如果您选择的是 io1 卷类型,此 设置为 EBS 卷的 IOPS,否则此选 项将被忽略。 18 RocketMQ Version RocketMQVersion 4.7.1 选择部署的 Apache NameServerInstanceType m5.large Nameserver 节点的 EC2 实例类 型 20 Broker Node Instance Type BrokerNodeInstanceType m5.xlarge Broker 节点 EC2 实例类型 21 Apache RocketMQ flush Disk Type FlushDiskType0 码力 | 18 页 | 1.55 MB | 1 年前3
 快速部署高可用的Apache RocketMQ 集群 - Amazon S3CentOS AMI。 13 Bastion Instance Type BastionInstanceType t2.micro 堡垒机实例的 EC2 实 例类型。 14 Number of Bastion Hosts NumBastionHosts 1 堡垒机数量。Auto Scaling 确 保您始终保持此数量的运⾏堡垒 机数量。 Apache RocketMQ Broker 节点的数量。 Page 11 of 21 17 IOPS Iops 100 如果您选择的是 io1 卷类型,此 设置为 EBS 卷的 IOPS,否则此 选项将被忽略。 18 RocketMQ Version RocketMQVersion 4.7.1 选择部署的 Apache NameServerInstanceTy pe m5.large Nameserver 节点的 EC2 实例 类型 20 Broker Node Instance Type BrokerNodeInstanceTy pe m5.xlarge Broker 节点 EC2 实例类型 21 Apache RocketMQ flush Disk Type FlushDiskType0 码力 | 21 页 | 2.57 MB | 1 年前3 快速部署高可用的Apache RocketMQ 集群 - Amazon S3CentOS AMI。 13 Bastion Instance Type BastionInstanceType t2.micro 堡垒机实例的 EC2 实 例类型。 14 Number of Bastion Hosts NumBastionHosts 1 堡垒机数量。Auto Scaling 确 保您始终保持此数量的运⾏堡垒 机数量。 Apache RocketMQ Broker 节点的数量。 Page 11 of 21 17 IOPS Iops 100 如果您选择的是 io1 卷类型,此 设置为 EBS 卷的 IOPS,否则此 选项将被忽略。 18 RocketMQ Version RocketMQVersion 4.7.1 选择部署的 Apache NameServerInstanceTy pe m5.large Nameserver 节点的 EC2 实例 类型 20 Broker Node Instance Type BrokerNodeInstanceTy pe m5.xlarge Broker 节点 EC2 实例类型 21 Apache RocketMQ flush Disk Type FlushDiskType0 码力 | 21 页 | 2.57 MB | 1 年前3
 基于Apache APISIX 与RocketMQ 构建云原生一体化架构ACK 机制 普通消息 顺序消息 延迟消息 事务消息 重试消息 死信消息 设计思想: 1.消息不丢、高可靠是架构的基础 2.时延优先,兼顾吞吐 3.收敛业务共性问题,提供丰富的业务消息类型 4.注重可运维性、弹性扩缩、流量调拨能力建设 RocketMQ 简介 2022 2007 2012 2016 2017 2018 N otify Born from multicolored 分区迁移时,会导致网络风暴,耗时极长 问题重点 • 在主节点宕机时,备节点要有自动切换为主的能力 • 容量调整时,不能产生数据迁移,且要在秒级完成 固定分区使用场景 • 任务计算过程中,会将同一个业务类型的数据发到同一个队列 • Binlog 等数据同步过程中,需要保证严格顺序 RAFT 存储支持:自动主从切换,强一致性保证 逻辑队列:秒级无损弹性扩缩,无数据复制,流量精准调度 消息与流融合索引支持0 码力 | 22 页 | 2.26 MB | 1 年前3 基于Apache APISIX 与RocketMQ 构建云原生一体化架构ACK 机制 普通消息 顺序消息 延迟消息 事务消息 重试消息 死信消息 设计思想: 1.消息不丢、高可靠是架构的基础 2.时延优先,兼顾吞吐 3.收敛业务共性问题,提供丰富的业务消息类型 4.注重可运维性、弹性扩缩、流量调拨能力建设 RocketMQ 简介 2022 2007 2012 2016 2017 2018 N otify Born from multicolored 分区迁移时,会导致网络风暴,耗时极长 问题重点 • 在主节点宕机时,备节点要有自动切换为主的能力 • 容量调整时,不能产生数据迁移,且要在秒级完成 固定分区使用场景 • 任务计算过程中,会将同一个业务类型的数据发到同一个队列 • Binlog 等数据同步过程中,需要保证严格顺序 RAFT 存储支持:自动主从切换,强一致性保证 逻辑队列:秒级无损弹性扩缩,无数据复制,流量精准调度 消息与流融合索引支持0 码力 | 22 页 | 2.26 MB | 1 年前3
 王强-Apache RocketMQ事务消息• 互操作性,易易部署,可监控管理理 消息系统挑战 • 传统设计和实现⽅方⾯面 • 组件的微服务化,例例如存储和计算分离 • 开源软件的冲击,云服务选型⾯面临挑战 • 缺少稳定的多语⾔言类库 • Cloud AI Ops⽅方⾯面 • 容器器化部署,K8S编排 • 诸如IoT/IIoT新场景下的规模化部署能⼒力力不不⾜足 • HTTP/RESTful/JSON 灵活调⽤用,监控及运维能⼒力力不不⾜足0 码力 | 34 页 | 6.17 MB | 1 年前3 王强-Apache RocketMQ事务消息• 互操作性,易易部署,可监控管理理 消息系统挑战 • 传统设计和实现⽅方⾯面 • 组件的微服务化,例例如存储和计算分离 • 开源软件的冲击,云服务选型⾯面临挑战 • 缺少稳定的多语⾔言类库 • Cloud AI Ops⽅方⾯面 • 容器器化部署,K8S编排 • 诸如IoT/IIoT新场景下的规模化部署能⼒力力不不⾜足 • HTTP/RESTful/JSON 灵活调⽤用,监控及运维能⼒力力不不⾜足0 码力 | 34 页 | 6.17 MB | 1 年前3
 Apache RocketMQ 介绍Apache RocketMQ 介绍 概要 Apache RocketMQ是一个分布式消息传递和流媒体平台,具有低延迟,高性能和可靠性,万亿级容 和灵活的可伸缩性。它的一个重要特性是支持非日志类型的可靠消息传送,非常适合运用在金融和电 商务领域。目前他是Apache社区的顶级项目,在全球有超过100家公司在其业务中使用RocketMQ 开源版本。 诞生 RocketMQ起源于阿里巴巴。阿0 码力 | 5 页 | 375.48 KB | 1 年前3 Apache RocketMQ 介绍Apache RocketMQ 介绍 概要 Apache RocketMQ是一个分布式消息传递和流媒体平台,具有低延迟,高性能和可靠性,万亿级容 和灵活的可伸缩性。它的一个重要特性是支持非日志类型的可靠消息传送,非常适合运用在金融和电 商务领域。目前他是Apache社区的顶级项目,在全球有超过100家公司在其业务中使用RocketMQ 开源版本。 诞生 RocketMQ起源于阿里巴巴。阿0 码力 | 5 页 | 375.48 KB | 1 年前3
共 8 条
- 1













