Wener笔记故事指南
Event vs Message
- Event -> EventBus
- 事件 - 强调发生了什么
- 不包含业务属性,通用 - 无指向性
- 通常 fire and forget
- 用于 集成、解耦、触发交互
- 多个 外部/内部消费者
- Message -> Queue
- 消息 - 强调需要被消费
- 包含业务属性 - 有指向性
- 通常需要 持久化、重试、幂等
- 用于 业务流程、状态变更、事务
- 通常一个业务会有 一个/组 消费者 - 相同消息不重复消费
NATS vs NSQ
- Nats
- 专注 Pub/Sub
- 内存处理
- 支持 JetStreaming
- NSQ
Kafka vs RocketMQ vs Pulsar
- Kafka
- by Confluent 2010
- 开发更活跃
- 社区活跃
- 生态丰富
- 部分 Scala - Java 越来越多
- HA 依赖 Zookeeper
- 目前正在移除 ZK 依赖
- 内部提供 NameServer
- 默认保留 7 天
- 云服务商: 非常多 - 阿里云也有
- 简单易用
- RocketMQ
- by 阿里 2011
- 纯 Java - 早期相当于参考 Kafka 翻的 Java
- 社区 - 中国、小众
- 生态非常欠缺
- HA 不依赖外部服务 - Master Slave/Dledger
- 默认保留 72 小时 - 3 天
- 云服务商: 阿里云
- vs Kafka
- 可以支持更多 Topic 数量 - 但是阿里云上限 150
- 功能完善 - 复杂度更高
- Pulsar
- by Streamlio 2012 - 201809 Apache 顶级项目
- 默认一直保留 - 可手动删除
- 存算分离
- 更新
- 支持 多租户、强一致性、跨域部署
- 云服务商: https://streamnative.cn/
- 结构复杂 - 组件很多