Apache RocketMQ 从入门到实战作者简介 丁威,《RocketMQ 技术内幕》作者,RocketMQ 官方社区优秀布道师,荣获 CSDN2020 博客之星亚军;担任中通快递研发中心资深架构师,维护『中间件兴趣圈』公 众号,主打成体系剖析 Java 主流中间件,尝试从源码分析、架构设计、实战、故障分析等 维度深刻揭晓中间件技术,已覆盖 RocketMQ、Dubbo、Sentienl、Kafka、Canal、 MyCat 1. 扎实的 Java 基础功底 一个开源项目的底层都会涉及到存储,这就要求具备一定的数据结构基础,JAVA 集 合框架中的类自然成为了我们突破数据结构最好的老师,其次是 java 并发,即多线程、并 发容器、锁等课题,这方面可以好好学习一下 JUC 框架。最后最好是具备一些网络方面的 知识,例如 NIO、Netty。 2. 持续输出能力 成为一个开源项目的 contributions Nameserver 集群中数据一致性采取的最终一致性。 2. Broker 消息存储服务器,分为两种角色:Master 与 Slave,上图中呈现的就是 2 主 2 从的部 署架构,在 RocketMQ 中,主服务承担读写操作,从服务器作为一个备份,当主服务器存 在压力时,从服务器可以承担读服务(消息消费)。所有 Broker,包含 Slave 服务器每隔 30s 会向 Nameserver 发送心跳包,心跳包中会包含存在在0 码力 | 165 页 | 12.53 MB | 1 年前3
RocketMQ v3.2.4 开发指南接口,一旦收到消息,Consumer 对象立 刻回调 Listener 接口方法。 Pull Consumer Consumer 的一种,应用通常主劢调用 Consumer 的拉消息方法从 Broker 拉消息,主劢权由应用控制。 Producer Group 一类 Producer 的集合名称,返类 Producer 通常収送一类消息,丏収送逡辑一致。 Consumer Group 消费。 顺序消息 消费消息的顺序要同収送消息的顺序一致,在 RocketMQ 中,主要挃的是尿部顺序,即一类消息为满足顺 序性,必须 Producer 单线程顺序収送,丏収送到同一个队列,返样 Consumer 就可以挄照 Producer 収送 的顺序去消费消息。 普通顺序消息 顺序消息的一种,正常情冴下可以保证完全的顺序消息,但是一旦収生通信异常,Broker Broker 集群中只 要有一台机器丌可用,则整个集群都丌可用,服务可用性大大降低。 如果服务器部署为同步双写模式,此缺陷可通过备机自劢切换为主避免,丌过仍然会存在几分钟的服务丌 可用。(依赖同步双写,主备自劢切换,自劢切换功能目前迓未实现) 目前已知的应用只有数据库 binlog 同步强依赖严格顺序消息,其他应用绝大部分都可以容忍短暂乱序,推 荐使用普通的顺序消息。 Message Queue0 码力 | 52 页 | 1.61 MB | 1 年前3
消息中间件RocketMQ原理解析 - 斩秋........................................................................ 42 6.2:索引服务 IndexService 线程 ................................................................................. 43 6.3:构建索引服务 . 可以认为是事物状态消息的个数,索引偏移量, 它的值是 tranStateTable.getMaxOffset() / TSStoreUnitSize 2.2.4 事物回查 定时回查线程会定时扫描(默认每分钟)每个存储事务状态的表格文件, 遍历存储事 务状态的表格记录 如果是已经提交或者回滚的消息调过过, 如果是 prepared 状态的如果消息小于事务回查至少间隔时间(默认是一分钟)跳出终 Broker) 统计信息打点 动态调整消费线程池 启动拉消息服务 PullMessageService 启动消费端负载均衡服务 RebalanceService 从 namesrv 更新 topic 路由信息 向所有 broker 发送心跳信息,(包括订阅关系) 唤醒 Rebalance 服务线程 二:消费端负载均衡0 码力 | 57 页 | 2.39 MB | 1 年前3
万亿级数据洪峰下的消息引擎Apache RocketMQ致命影响。 操作系统Page Cache Radix Tree 每个Page的阻塞锁,产生几百毫秒小毛刺 写入数据平均响应时间不超过1ms 写入数据最大响应时间不超过20ms(Java GC暂停线程引起) 1.4万亿 双十一当天高可用要求 ~~ 100% 低延迟的分布式存储系统 在线熔断机制 完善的容量评估 SLA=99.999% 1.4万亿 在线熔断机制 ①消息服务器 ②消息服务器0 码力 | 35 页 | 993.29 KB | 1 年前3
万亿级数据洪峰下的消息引擎 Apache RocketMQ致命影响。 操作系统Page Cache Radix Tree 每个Page的阻塞锁,产生几百毫秒小毛刺 写入数据平均响应时间不超过1ms 写入数据最大响应时间不超过20ms(Java GC暂停线程引起) 1.4万亿 双十一当天高可用要求 ~~ 100% 低延迟的分布式存储系统 在线熔断机制 完善的容量评估 SLA=99.999% 1.4万亿 在线熔断机制 ①消息服务器 ②消息服务器0 码力 | 35 页 | 5.82 MB | 1 年前3
rocketmq 服务部署46.jar └── tomcat-embed-core-8.5.46.jar ● bin目录下放的是脚本文件 ● conf目录,配置文件 2m-2s-async 双主双从异步复制模式 2m-2s-sync 双主双从同步双写模式 2m-noslave 双主模式 ● lib 存放的依赖jar包 测试namesrv的启动 启动命令: nohup /Users/gitsilence /Users/gitsilence/JavaTools/rocketmq/rocketmq-4.9.2-SNAPSHOT/bin/mqshutdown namesrv 原文链接:rocketmq 服务部署 集群部署 双主双从异步复制模式 两个台电脑 ● Mac OS ● 地址:192.168.166.20 ● Cent OS ● 地址:192.168.166.206 保证两台电脑在同一网段,端口是通的,可以关闭防火墙0 码力 | 11 页 | 284.35 KB | 1 年前3
基于Apache APISIX 与RocketMQ 构建云原生一体化架构consumer 加快数据读取速度 你集群是正常的,但我消费就是出问题了,怎么办!? 无损弹性扩缩 固定分区面临的挑战 • 无切换架构中,主节点宕机,备节点不可写,分区数量减少 • 容量不足,Kafka 分区迁移时,会导致网络风暴,耗时极长 问题重点 • 在主节点宕机时,备节点要有自动切换为主的能力 • 容量调整时,不能产生数据迁移,且要在秒级完成 固定分区使用场景 • 任务计算过程中,会将同一个业务类型的数据发到同一个队列0 码力 | 22 页 | 2.26 MB | 1 年前3
快速部署高可用的Apache RocketMQ 集群 - Amazon S3连接的 NAT Gateway。 • (*) 在公有⼦⽹中,Auto Scaling 组中的允许 SSH 访问的堡垒主机。默认 情况下将 部署⼀台堡垒主机,此数⽬可配置,最多启动 4 台。通过堡垒主 机访问私有⼦⽹ 中的 RocketMQ 相关节点。 • AMAZON Identity and Access Management (IAM) 实例⻆⾊,具有细 化控制的权限, ⽤于访问部署过程所需的 您希望部署到的已有 VPC ID (例如, vpc0343606e)。 2 Primary Node Subnet PrimaryNodeSubnet 必填项 要将主 RocketMQ 节点部署到 的 VPC 中现 有⼦⽹的 ID (例如 ,subnet-a0246dcd) 。此⼦⽹ 需要在您选择的 VPC 中。 3 Secondary0 Node0 码力 | 21 页 | 2.57 MB | 1 年前3
Apache RocketMQ on Amazon Web Services您希望部署到的已有 VPC ID(例 如, vpc0343606e)。 2 Primary Node Subnet PrimaryNodeSubnet 必填项 要将主 RocketMQ 节点部署到的 VPC 中现 有⼦网的 ID (例如, subnet-a0246dcd) 。此⼦网需要 在您选择的 VPC 中。 3 Secondary0 Node Subnet0 码力 | 18 页 | 1.55 MB | 1 年前3
共 9 条
- 1













