1介绍

本位仅仅做笔记记录使用

2.OMS应用场景

  1. 异步
  2. 解耦
  3. 最终一致
  4. 并行

例子

3. 设计思路

  1. 考虑到任何一台机器都可能down掉
  2. 任何一个利集群都可能处理能力不足
  3. 最坏情况一定会发生
  4. 内网环境需要低延迟

4. 关键设计

基于第三点的设计时考虑到的问题,我们需要解决以下四个关键问题

  1. 无单点集群化设计: 所有发布者,消息服务器和订阅着都要采用集群化的设计,这样可以自动扩展收缩,按需使用,拥有集群级别高可用
  2. 强数据安全和高可用: 消息服务器要保证消息不丢失,可以采在单队列使用raid,再加上跨机器的异步复制冗余
  3. 海量数据堆积能力: 很多消息中间件虽然有很好高qps和tps,但是一旦出出现消息堆积问题就会挂掉。他们用大量内存换性能。
  4. 毫秒级别投递延迟: 一般消息的收发有三种方式。第一种是订阅者拉消息,这种会有较高延迟,适合日志系统等,通过周期拉消息,关注吞吐量。第二种是推消息方式,延迟较低,需要等待订阅者的ack。第三种推拉结合,就是推和拉同时进行,这样会有较多的信息交互。阿里采用推拉结合,不过修改成了长轮询的方式,订阅者发拉请求,消息服务器会留住这个拉请求,等有消息了再返回给订阅者