全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 学道会
407 1
2019-07-23
大规模数据处理08:发布订阅模式
1.在分布式架构里,架构中的各个组件,需要相互联系沟通,组件可以是后台的数据库,可以是前端的浏览器,也可以是公司内部不同的服务终端;
2.消息队列在发布/订阅模式中起到的是一个持久化缓冲的作用。
3.消息的发送方可以发送任意消息至这个消息队列中,消息队列在接收到消息之后会将消息保存好,直到消息的接收方确认已经从这个队列拿到了这个消息,才会将这条消息从消息队列中删除。
4.发布/订阅模式中,指的是,消息的发送方可以将消息异步地发送给一个系统中不同组件,而无需知道接收方是谁 5.观察者模式,系统中的各个组件紧耦合在一起
6.发布订阅模式的优点:

6.1 松耦合:发布者和订阅者在开发的时候完全不需要知道对方的存在,可以独立的进行开发.
6.2高伸缩性:消息队列可以独立的作为一个数据存储中心存在,在分布式环境中,消息队列可以扩展至上千个服务器中。
6.3 系统组件间通信更加简洁: 因为不需要为每一个消息的订阅者准备专门的消息格式,只要知道了消息队列中保存消息的格式,发布者就可以按照这个格式发送消息,订阅者也只需按照这个格式接受消息。

7.消息队列的缺点:在整个数据模式中,我们不能保证发布者发送的数据一定会送达订阅者,如果要保证数据一定送达的话,需要开发者自己实现响应机制。

在Apache Kafka中,消息的发送方被称为Producer,消息的接收方被称为Consumer,而消息队列被称为Topic
Kafka在判断消息是否被接收方接收是利用了Log offset机制
9.发布/订阅数据处理模式的使用场景:
9.1 系统的发送方需要向大量的接收方广播消息
9.2 系统中某一个组件需要与多个独立开发的组件或服务进行通信,而这些独立开发的组件或服务可以使用不同的编程语言和通信协议
9.3 系统的发送方在向接收方发送消息之后无需接收方进行实时响应
9.4 系统中对数据的一致性的要求只需要支持数据的最终一致性模型
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2019-7-23 21:26:45
学习笔记奖!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群