rocketmq
2022-02-22 17:46:33 0 举报
AI智能生成
rocketmq
作者其他创作
大纲/内容
RocketMQ
① 安装
依赖环境
64位操作系统
64位JDK1.8+
maven 3.2.x+
git
代码准备
代码下载
git clone https://github.com/apache/rocketmq.git
项目构建
分支主题
单机模式
配置环境变量
启动NameServer
修改配置文件
运行
启动Broker
修改配置文件
运行
异常信息查看
发送和接受消息
发送
接收
关闭服务
关闭broker
关闭namesrv
集群模式 TODO
② 开发
测试环境搭建
基于springboot
寻找NameServer
1、在代码中指定namesrvAddr属性。例如:consumer.setNamesrvAddr("127.0.0.1:9876");
2、通过NAMESRV_ADDR环境变量来指定。多个NameServer之间用分号连接。
rockermq编程模型
消息发送者的固定步骤
创建消息生产者producer,并制定生产者组名
指定Nameserver地址
启动producer
创建消息对象,指定主体Topic、Tag和消息体
发送消息
关闭生产者producer
消息消费者的固定步骤
创建消费者Consumer,指定消费者组名
指定Nameserver地址
订阅主体Topic和Tag
设置回调函数,处理消息
启动消费者consumer
rockermq消息样例
消息发送
同步发送
异步发送
单向发送
消息消费
拉模式
推模式
消息模型
顺序消息
发送消息要有序
消费消息要有序
广播消息
消息会发给所有订阅了对应主题的消费者
延迟消息
发送消息延迟
批量消息
说明
小于1M消息发送
大于1M消息发送
过滤消息
TAG过滤
生产端
消费端
SQL过滤
SQL92语法
生产端
消费端
事务消息
事务监听器实现
监听器注入到producer
使用限制
不支持延迟消息和批量消息
配置单个消息检查次数
间隔时间检查的配置
事务消息可能不止一次被检查和消费
保证事务消息不丢失,建议使用同步的双重写入机制
事务消息生产者ID不能和其他类型的生产者ID共享
实现机制
1、TransactionMQProducer发送half消息给Broker
2、TransactionMQProducer接收到从Broker来的half消息
3、执行本地事务(executeLocalTransaction)
4、producer回滚或提交
5、Broker定时回查未确定状态的消息
6、producer回查消息状态(checkLocalTransaction)
7、producer根据消息状态提交或者回滚
8、Broker对于回滚的消息直接丢弃
acl权限控制
服务器配置
具体配置
客户端配置
具体配置
与springboot集成
注意点
Message对象不同
引入关键依赖
配置文件
消息生产
事务消息
消息消费
核心是@RocketMQMessageListener注解
消息过滤:selectorType和selectorExpression指定
有序或并发消费:consumeMode指定
集群还是广播:messageMode指定
与SpringCloudStream集成
谨慎使用
③ 基础概念
消息模型
消息生产者
消息消费者
主题
代理服务器
名字服务
消息
④ 消息存储
何时存储消息
消息存储介质
消息存储结构
刷盘机制
消息主从复制
负载均衡
消息重试
死信队列
消息幂等
0 条评论
下一页