今天是2025/04/14 21:58 day 20
总路线请移步主页Java大纲相关文章
今天进行RocketMQ 6,7,8 个模块的归纳
最近在忙毕设,更新有点慢,见谅
首先是RocketMQ 的相关内容概括的思维导图
6. 安全机制
6.1 ACL 访问控制
-
核心功能
-
权限分级:通过用户(User)和密钥(AccessKey/SecretKey)实现身份验证,支持细粒度权限控制(如发布、订阅、管理权限)。
-
资源隔离:可针对 Topic、Consumer Group 等资源设置访问权限(白名单/黑名单)。
-
IP 白名单:限制 Broker 或客户端的访问 IP,防止未授权节点接入。
-
-
配置示例
# Broker 开启 ACL aclEnable=true # 配置 ACL 规则文件路径 aclFile=/path/to/acl.yml
6.2 传输加密
-
TLS/SSL 加密
-
通信加密:支持客户端与 Broker 之间、Broker 主从节点之间的 TLS 加密传输。
-
证书管理:需配置 CA 证书、服务端证书和私钥,防止中间人攻击。
-
-
配置步骤
-
生成证书(使用 OpenSSL 或购买商业证书)。
-
Broker 配置 TLS:
# 启用 TLS tlsEnable=true tlsServerCertPath=/path/to/server.crt tlsServerKeyPath=/path/to/server.key
-
客户端配置 TLS:在 Producer/Consumer 代码中加载信任证书链。
-
6.3 审计与日志安全
-
操作审计:记录关键操作(如 Topic 创建、权限变更),支持对接日志分析系统(如 ELK)。
-
敏感信息脱敏:日志中自动隐藏 AccessKey 等敏感字段。
7. 典型应用场景
7.1 流量削峰填谷
-
场景说明
-
应对突发流量(如电商秒杀、抢购活动),将瞬时高并发请求转为异步消息,由下游服务按处理能力消费。
-
-
RocketMQ 优势
-
高吞吐(单机百万级 TPS)和堆积能力(支持亿级消息堆积)。
-
动态扩展 Consumer 实例数量,快速消化积压消息。
-
7.2 系统异步解耦
-
场景说明
-
微服务架构中,通过消息队列解耦服务依赖(如订单服务完成支付后,通知库存服务扣减库存)。
-
-
实现模式
-
事件驱动架构(EDA):服务间通过消息事件通信,提升系统弹性。
-
最终一致性:结合事务消息保障跨服务操作的最终一致性。
-
7.3 分布式事务一致性
-
场景说明
-
解决跨数据库、跨服务的分布式事务问题(如银行转账:A 账户扣款成功后,B 账户需同步到账)。
-
-
RocketMQ 方案
-
事务消息机制:
-
发送 Half 消息(预提交)。
-
执行本地事务(如更新数据库)。
-
根据本地事务结果提交或回滚消息。
-
-
事务回查:若 Producer 未及时提交状态,Broker 主动回查事务结果,确保数据一致性。
-
7.4 大数据实时管道
-
场景说明
-
将业务系统数据实时同步到大数据平台(如 Flink、Hadoop、Elasticsearch)。
-
-
技术实现
-
RocketMQ Connect:内置多种数据源插件(MySQL、Kafka、HBase),实现低代码数据同步。
-
与 Flink 集成:通过 RocketMQ-Flink Connector 实现流式计算。
-
8. 生态集成
8.1 Spring/Spring Boot 整合
-
核心依赖
<dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.2.3</version> </dependency>
-
关键配置
rocketmq:name-server: 127.0.0.1:9876producer:group: my-producer-groupconsumer:group: my-consumer-group
-
注解驱动开发
-
@RocketMQMessageListener
:快速定义 Consumer。 -
RocketMQTemplate
:简化消息发送(支持同步/异步/事务消息)。
-
8.2 RocketMQ Connect
-
功能定位
-
实现 RocketMQ 与异构系统(数据库、文件系统、其他消息队列)的数据双向同步。
-
-
核心组件
-
Source Connector:从外部系统拉取数据写入 RocketMQ。
-
Sink Connector:从 RocketMQ 消费数据写入外部系统。
-
-
使用场景
-
MySQL Binlog 实时同步到 Elasticsearch。
-
Kafka 数据迁移到 RocketMQ。
-
8.3 RocketMQ Streams
-
轻量级流处理引擎
-
支持类 SQL 语法实时处理消息流(过滤、聚合、Join 等操作)。
-
与 Flink 对比:
特性 RocketMQ Streams Apache Flink 部署复杂度 轻量级,内嵌于 RocketMQ 需独立集群,运维成本高 功能范围 基础流处理(适合简单 ETL) 完整流批一体计算(复杂场景)
-
-
示例:统计订单金额
SELECT order_id, SUM(amount) FROM orders GROUP BY TUMBLE(proctime, INTERVAL '1' MINUTE), order_id