rocketmq基础知识
看一下一个高可用rocketmq的结构图。NameServer作为服务发现单独成为一个集群,producer和consumer直接指定nameserver cluster的地址。从而获取可用broker的地址。对于broker,也采取master slave结构以增强cluster的可用性。
broker的相关配置大致如下,
1.amesrvAddr=192.168.100.131:9876; 192.168.100.132:9876 // 服务发现地址
2.brokerCl usterName=DefaultCluster // 集群名称
3.brokerName=broker- a // broker名称 通过brokerName来关联master和slave
4.brokerid=0 // 为0则代表为master 不为0则为master
5.fileReservedTime=48 // 磁盘上保存时间
6.deleteWhen=04 // 默认删除时间
7.brokerRole=SYNC MASTER // broker的角色
// sync_master 表示该节点为master 与slave同步后才同步成功,
// async_master 异步同步
// slave 从节点
8.flushDiskType=ASYNC FLUSH // 刷盘策略 sync_flush 同步刷盘 async_flush 异步刷盘
push和pull的区别
push:采用长轮询的方式去拉取,由broker自己维护offset。
pull: 也是通过http请求去拉取,offset需要自己维护,每次pull的时候带上offset,可以作为事务。
producer的相关特性
groupName:consumer的group名称,相同的group会产生对于事务的影响。
instanceName:每一个producer的名称
重试次数,发送失败的重试次数,因为重试收不到ack,可能会引起重复消息。
nameServer地址
返回值: FLUSH_DISK_TIMEOUT 刷盘失败
FLUSH_SLAVE_TIMEOUT 同步到slave失败
SLAVE_NOT_AVAILABLE slave挂掉了
SEND_OK 发送成功
支持2pc的事务
以上是 rocketmq基础知识 的全部内容, 来源链接: utcz.com/z/511204.html