Big Data - Pub + Sub
Concept
Message
- 在分布式架构中,各个组件(数据库、浏览器、服务端)需要相互沟通
- 各个组件依靠通过发送消息相互通信
- 消息可以是任意格式
Message Queue
消息队列在发布订阅模式中起到一个持久化缓冲(Durable Buffer)的作用
消息的发送方可以发送任意消息到消息队列
消息队列在接收到消息后将消息保存好
直到消息的接收方确认已经从队列消费该消息,才会将该消息从消息队列中删除
某些消息队列支持自定义消息的保留时间 - Apache Kafka
Pub-Sub
概述
- 消息的发送方可以将消息异步地发送给一个系统中的不同组件,而无需知道接收方是谁
- 发送方被称为 Publisher,而接收方被称为 Subscriber
- 可以有任意多个 Publisher,也可以有任意多个 Subscriber
优点
- 松耦合
- 高伸缩性 - 消息队列可以作为独立的数据存储中心而存在
- 组件通信更简洁
缺点
- 无法保证 Publisher 发布的消息一定会送达 Subscriber
Apache Kafka
- 消息的发送方被称为 Producer,而消息的接收方被称为 Consumer,而消息队列被称为 Topic
- 利用 Log Offset 机制来判断消息是否被接收方消费
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.