1介绍
本位仅仅做笔记记录使用
2.OMS应用场景
- 异步
- 解耦
- 最终一致
- 并行
例子
3. 设计思路
- 考虑到任何一台机器都可能down掉
- 任何一个利集群都可能处理能力不足
- 最坏情况一定会发生
- 内网环境需要低延迟
4. 关键设计
基于第三点的设计时考虑到的问题,我们需要解决以下四个关键问题
- 无单点集群化设计: 所有发布者,消息服务器和订阅着都要采用集群化的设计,这样可以自动扩展收缩,按需使用,拥有集群级别高可用
- 强数据安全和高可用: 消息服务器要保证消息不丢失,可以采在单队列使用raid,再加上跨机器的异步复制冗余
- 海量数据堆积能力: 很多消息中间件虽然有很好高qps和tps,但是一旦出出现消息堆积问题就会挂掉。他们用大量内存换性能。
- 毫秒级别投递延迟: 一般消息的收发有三种方式。第一种是订阅者拉消息,这种会有较高延迟,适合日志系统等,通过周期拉消息,关注吞吐量。第二种是推消息方式,延迟较低,需要等待订阅者的ack。第三种推拉结合,就是推和拉同时进行,这样会有较多的信息交互。阿里采用推拉结合,不过修改成了长轮询的方式,订阅者发拉请求,消息服务器会留住这个拉请求,等有消息了再返回给订阅者