Apache RocketMQ 从入门到实战没有连续的空闲时间专心投入一项任务中,而开源最需要的是精益求精,不只是需要完成功 能,而是要编写结构优良的代码,设计所占据的时间比代码开发时间要多的多,故我个人认 为我暂时不方便走代码贡献这条道路。但我零碎时间还是充足的,故现阶段我会好好利用这 些零碎时间,继续通过写文章的方式为开源项目贡献自己的一份力量。 本文来自『中间件兴趣圈』公众号,仅作技术交流,未授权任何商业行为。 9 > 开篇:我的另一种参与 RocketMQ 开源社区的方式 接下来我们回到本节的主题,那如何参与一个开源项目呢? 在参与一个开源项目之前,我觉得第一个最基本的步骤还是要打牢基础,这里的基础至 少要包括 JAVA 集合、JAVA 并发(JUC)这两项,只是最最基本的,至少要阅读其源码, 理解其设计理念,至于 NIO,Netty 这些可以后续在需要使用时再去专门学习,有针对性 的学习,有使用需求,或许学习动力更强劲,学习效率更高效。 当具备 当具备一定的基础后,如何从零开始参与进开源项目呢?通常有如下几个方法: 看看官方文档,特别是设计手册,从整体上把握其设计理念。 写写源码分析类文章,从整体上把控这个框架,这个花费时间较多,如果框架正在起步。 阶段,不建议该方法;如果框架比较成熟,非常建议采用该方法。 尝试看看开源项目中的 issues,看能不能解决,从问题入手,快速融入该项目。 尝试谢谢单元测试用例,测试驱动开发,借此学习该框架。0 码力 | 165 页 | 12.53 MB | 1 年前3
RocketMQ v3.2.4 开发指南ketMQ 在返四种情冴下能保证消息丌丢,戒 者丢失少量数据(依赖刷盘方式是同步迓是异步)。 (5)、(6)属亍单点故障,丏无法恢复,一旦収生,在此单点上的消息全部丢失。RocketMQ 在返两种情冴下,通 过异步复制,可保证 99%的消息丌丢,但是仍然会有极少量的消息可能丢失。通过同步双写技术可以完全避免单点, 同步双写势必会影响性能,适合对消息可靠性要求极高的场合,例如不 Money RocketMQ 可以很好的支持此特性。 4.9 Exactly Only Once (1). 収送消息阶段,丌允许収送重复的消息。 (2). 消费消息阶段,丌允许消费重复的消息。 只有以上两个条件都满足情冴下,才能讣为消息是“Exactly Only Once”,而要实现以上两点,在分布式系统环 境下,丌可避免要产生巨大的开销。所以 RocketMQ 为了追求高性能,幵丌保证此特性,要求在业务上迕行去重, ,也可以吐后回溯。 4.12 消息堆积 消息中间件的主要功能是异步解耦,迓有个重要功能是挡住前端的数据洪峰,保证后端系统的稳定性,返就要 求消息中间件具有一定的消息堆积能力,消息堆积分以下两种情冴: (1). 消息堆积在内存 Buffer,一旦超过内存 Buffer,可以根据一定的丢弃策略来丢弃消息,如 CORBA Notification 规范中描述。适合能容忍丢弃消息的业务,返种情冴消息的堆积能力主要在亍内存0 码力 | 52 页 | 1.61 MB | 1 年前3
消息中间件RocketMQ原理解析 - 斩秋//代表发送消息的在指定 broker 上指定 topic 下的队列编号 向指定 broker 的指定 topic 的指定 queue 发送消息 发送失败(1)重试次数不到两次(2)发送此条消息花费时间还没有到 3000(毫秒), 换 个队列继续发送。 2.1 producer 发送普通消息 2.2 顺序消息发送 Rocketmq 能够保证消息严格顺序,但是 [userId%messageQueueList.size()] 2.3 分布式事物消息 先引入官方文档图: 分布式事物是基于二阶段提交的 1) 一阶段,向 broker 发送一条 prepared 的消息,返回消息的 offset 即消息地址 commitLog 中消息偏移量。Prepared 状态消息不被消费 发送消息 ok,执行本地事物分支, 事 物 状 态 LocalTransactionState 3) 二阶段,处理完本地事物中业务得到事物状态, 根据 offset 查找到 commitLog 中 的 prepared 消息,设置消息状态 commitType 或者 rollbackType , 让后将信息添加到 commitLog 中, 其实二阶段生成了两条消息0 码力 | 57 页 | 2.39 MB | 1 年前3
王强-Apache RocketMQ事务消息Consistency 分布式事务解决⽅方案 XA 特点: 1. 两阶段提交 2. 仅商业化数据库⽀支持 3. ⽆无法满⾜足⾼高并发场景 分布式事务解决⽅方案 SAGA 特点: 1. 提交+补偿 2. 并发隔离性很难保证 分布式事务解决⽅方案 TCC 特点: 1. 特殊的两阶段提交 2. Try阶段检查/锁定资源 没有真正提交 3. 增加了了⼀一个状态处理理,开发变复杂0 码力 | 34 页 | 6.17 MB | 1 年前3
Apache RocketMQ on Amazon Web Services架构 AMAZON CloudFormation 提供了一种创建和管理相关 AMAZON WEB SERVICES 资源的简 便方法,并通过有序 且可预测的方式进⾏资源配置和更新。本快速⼊⻔提供两种部署 选项,一种是将 Apache RocketMQ 部署到新 VPC 环境中,另一种是 部署到已有 VPC 环 境中。使用默认参数为在新 VPC 环境中 部署以下资源。如果您选择的是将此方案部署 下部署如下的一个架构,包含两个 Nameserver 互为备份,三个 Broker Instance 每个 Broker Instance 上面启动三个 Broker 实例,每个 Broker 实例会在 三个 Broker Instance 之间形成一个基于 Raft 的高可用 dledger 集群,如果其中一个 Broker 实例因故障无法提供服务,Raft 协议会自动在另外两个 Instance 此方案仅针对使用由西云数据运营的 AMAZON WEB SERVICES(宁夏)区域或由 光环新网运营的 AMAZON WEB SERVICES(北京)区域。在开始之前,请先确保 您已经有了一个可以访问这两个区域的 AMAZON WEB SERVICES 账号。如果您在 AMAZON WEB SERVICES 其他区域使用此方案,请点击此处 2. 确保您的账⼾下的 Elastic IP ,VPC0 码力 | 18 页 | 1.55 MB | 1 年前3
快速部署高可用的Apache RocketMQ 集群 - Amazon S3架构 Amazon CloudFormation 提供了⼀种创建和管理相关 AMAZON WEB SERVICES 资源的简便⽅法,并通过有序 且可预测的⽅式进⾏资源配置和更新。本快速⼊⻔提供 两种部署选项,⼀种是将 Apache RocketMQ 部署到新 VPC 环境中,另⼀种是 部署 到已有 VPC 环境中。使⽤默认参数为在新 VPC 环境中 部署以下资源。如果您选择的 是将此⽅案部署到已有 部署如下的一个架构,包含两个 Nameserver 互为备份,三个 Broker Instance 每个 Broker Instance 上面启动三个 Broker 实例,每个 Broker 实例会在三个 Broker Instance 之间形成一个基于 Raft 的高可用 dledger 集群,如果其中一个 Broker 实例 因故障无法提供服务,Raft 协议会自动在另外两个 Instance 第三个 ⼦⽹。 部署说明 1. 此⽅案仅针对使⽤由西云数据运营的 亚马逊云科技(宁夏)区域或由光环新⽹ 运营的 亚马逊云科技(北京)区域。在开始之前,请先确保您已经有了⼀个可 以访问这两个区域的 AMAZON WEB SERVICES 账号。如果您在 AMAZON WEB SERVICES 其他区域使⽤此⽅案,请点击此处 2. 确保您的账⼾下的 Elastic IP ,VPC0 码力 | 21 页 | 2.57 MB | 1 年前3
rocketmq 服务部署package -Dmaven.test.skip=true 编译后进入到 distribution/target目录,rocket-mq-xxx.tar.gz 和 rocket-mq-xxx.zip 两种,zip 是w ndow下的,tar.gz为Linux下的; tar.gz解压后的目录结构: . ├── LICENSE ├── NOTICE ├── README.md ├── benchmark 2-SNAPSHOT/bin/mqshutdown namesrv 原文链接:rocketmq 服务部署 集群部署 双主双从异步复制模式 两个台电脑 ● Mac OS ● 地址:192.168.166.20 ● Cent OS ● 地址:192.168.166.206 保证两台电脑在同一网段,端口是通的,可以关闭防火墙 需要开放的端口:NameServer的9876端口、Broker的10911、11011、10909、11009端口 mapedFileSizeCommitLog=1073741824 # ConsumeQueue每个文件默认存30w条,根据业务情况调整 mapedFileSizeConsumeQueue=300000 先把两个节点 name server 启动 nohup /Users/gitsilence/JavaTools/rocketmq/rocketmq-4.9.2-SNAPSHOT/bin/mqnamesrv0 码力 | 11 页 | 284.35 KB | 1 年前3
Apache RocketMQ 介绍。这些都是传统消息系统无法比拟的。 Producer由用户进行分布式部署,消息由Producer通过多种负载均衡模式发送到Broker集群,发送 延时,支持快速失败。 Consumer也由用户部署,支持PUSH和PULL两种消费模式,支持集群消费和广播消息,提供实时的 息订阅机制,满足大多数消费场景。 特点 ● RocketMQ支持异步实时刷盘,同步刷盘,同步复制,异步复制。具有高可靠性。不会因为操作系 的崩溃而导致数据丢失。0 码力 | 5 页 | 375.48 KB | 1 年前3
共 8 条
- 1













