RocketMQ部署主要有以下几种模式:
- 单master模式(Local模式或单点模式)
- 多master模式(无slave)
- 多master多slave模式-异步复制模式
- 多master多slave模式-同步双写模式
刷盘策略:同步刷盘/异步刷盘(指节点自身消息持久化是同步还是异步写入磁盘)
主从同步方式:同步双写/异步复制(指同一组主从节点之间数据的同步)
刷盘策略:同步刷盘/异步刷盘(指节点自身消息持久化是同步还是异步写入磁盘)
主从同步方式:同步双写/异步复制(指同一组主从节点之间数据的同步)
使用二阶段提交,半事务消息和事务回查来解决上下游数据的一致性。
在一些对数据一致性有强需求的场景,可以使用RocketMQ事务消息来解决,从而保证上下游数据的一致性。
例如,A系统 --> RocketMQ --> B系统,如何保持A、B系统分布式事务的一致性?
RocketMQ 消息构成非常简单,如下图所示。
topic,表示要发送的消息的主题。
body 表示消息的存储内容
properties 表示消息属性
transactionId 会在事务消息中使用。
Message 可以设置的属性值包括:
相对于RocketMQ的Broker集群,生产者和消费者都是客户端。本小节主要描述生产者和消费者公共的行为配置。
DefaultMQProducer、TransactionMQProducer、DefaultMQPushConsumer、DefaultMQPullConsumer都继承于ClientConfig类,ClientConfig为客户端的公共配置类。客户端的配置都是get、set形式,每个参数都可以用spring来配置,也可以在代码中配置,例如namesrvAddr这个参数可以这样配置,producer.setNamesrvAddr("192.168.0.1:9876"),其他参数同理。