特点:支持顺序消息、事务、集群与广播、亿级消息堆积、push/pull两种订阅模式
1、四部分组成:
nameServer:各节点间无状态,没有频繁读(没负载压力),不需要加太多节点
broker:管理消息(存、分发):1)一个topic被均匀分散到所有broker节点上(topic大,就要更多节点),消息实际存在topic中的queue中。2)和nameServer长连接,定时发送心跳和topic信息,没收到被nameServer关闭
producer:1)和nameServer长连接,定时轮询topic信息,nameServer宕机,重连其他节点,2)定时向broker发心跳,没收到被broker关闭
2、部署模式
1)单m,2)多m集群,3)多m/s异步复制,4)多m/s同步复制
2)多m缺点:broker宕机,未消费的还在,没恢复不能消费,3/4来解决
3)异步:延迟毫秒级,缺点:m宕机,s不能自动切换为m功能
4)同步:主从都写成功,才算成功
3、生产者代码
1) 创建实例 2)设置producerGroup和nameServer地址后,调start启动producer连接 3)send写入消息
4、消费者代码
1)指定nameServer地址 3)设置合理线程数 4)设置消息模型
6)可选择,从最后/前、指定时间点 消费
最后可设置重复消费
5、典型案例(买卖库)
都要查,搞两个库,不会同步双写,mq保证一致
网友评论