目标
可靠性(保证消息不丢失)、异步、解耦(无需同时在线、不需要知道对方是谁)。
数据的存储级别
内存中的数据(断电丢数据)===》持久化磁盘(磁盘损坏)===》冗余备份(一致性问题)
基本设计架构
特点:
- Notify之间不互相通讯。
- 支持水平扩展。
- 客户端通过Config Server获得Notify地址列表(Config Server角色一般由ZK扮演)。
- 客户端自动感知Notify的增加或减少。
- 发布者、消费者、Notify Server都支持集群。
- 消息根据不同的安全级别选择存放到不同的地方(如:File、Oracle、Mysql),然后放在内存中提高性能。
- 推模式(kafka基于pull模式)