一、什么是消息队列
为程序或组件提供异步的通信机制
是在消息的传输过程中保存消息的容器
解耦:
1)发送者和接收者不必同时在线
2)发送接收不必了解对方
二、消息队列的两种模型
点对点(Point-to-Point)
订阅(Publish/Subscribe)
三、消息队列对比
支持分布式
支持订阅
高可靠性
高性能
开发语言
社区活跃度,周边运维工具
用户使用成本等
kiss原则
四、Qbus特点
以kafka为原型
分布式
持久化
支持订阅
高可靠
高吞吐、高性能,与消息总量无关
支持消息批量处理
支持压缩
支持可选可靠级别
1、Qbus使用场景—数据同步
多IDC间数据同步常见方案
master/slave
multi-master
multi-write(Paxos)
2、master/slave方案
问题
Master中心化导致跨机房写
单点风险(failover)
Idc太多?
3、multi-master方案
问题
冲突如何解决?
4、multi-write(Paxos)方案
特点:强一致写
问题:延迟大
5、Qbus解决方案
write延迟小
可靠性高
各idc完全独立
还可以用来:
收发消息作为普通的消息系统来使用
分布式任务作为任务分发器
收集日志收集业务日志进行实时存储、分析
监控服务,保护网站安全监控服务访问情况,防止用户对网站进行无限制的抓取数据等