当前位置: 首页 >应用方案 >技术应用 >

分布式系统中发布/订阅模式详解


一、什么是发布/订阅模式

发布/订阅(Pub/Sub,即Publish/Subscribe)是分布式系统中用于不同组件或服务之间异步通信的一种架构设计模式。尽管发布/订阅基于消息队列和事件代理等早期设计模式,但它更加灵活和可扩展。其关键在于,发布/订阅允许在系统的不同组件之间传递消息,而这些组件之间无需知道彼此的身份(即它们是解耦的)。

发布/订阅模式的出现源于扩大信息系统规模的必要性。在互联网时代之前,甚至在互联网发展的初期,系统大多是通过静态方式扩展的。然而,随着互联网的扩张和基于Web的应用程序的普及,以及移动设备和物联网设备的广泛应用,系统需要动态地扩展。

发布/订阅模式的解耦特性使其成为管理动态可扩展系统架构的理想选择。发布/订阅使得在不增加系统组件程序逻辑负担的情况下管理扩展成为可能。


二、Pub/Sub架构详解

Pub/Sub 提供了一个框架,用于在发布者(创建和发送消息的组件)和订阅者(接收和使用消息的组件)之间交换消息。请注意,发布者不会以点对点方式向特定订阅者发送消息。相反,使用中介 - Pub/Sub 消息代理,它将消息分组为称为通道(或主题)的实体。


1、发布/订阅模型工作原理:

2、发布/订阅模式应用场景

为了更具体地理解Pub/Sub系统的操作,我们可以考虑以下实际场景:

设想在家中,您安装了一系列IoT设备,这些设备负责监测烟雾浓度并控制电力与天然气的供应。为了确保这些设备之间能够顺畅且可靠地通信,您可以采用MQTT代理作为消息传递的中心枢纽。

在这个场景中,一旦烟雾检测设备(作为发布者)侦测到烟雾并判定为警报状态,它会立即向MQTT代理发送一条包含警报信息的消息。而您的智能手机(作为订阅者之一)已经订阅了相关的烟雾警报主题,因此会立即接收到这条消息,并通知您家中存在烟雾。

值得注意的是,Pub/Sub模型的灵活性还体现在订阅者也能转变为发布者的能力上。例如,您的智能手机在接收到烟雾警报后,可以作为一个发布者,向另一个特定主题发送关闭电力和天然气供应的指令消息。此时,负责控制电力和天然气供应的IoT设备(作为订阅者)会接收到这条指令,并据此执行关闭操作,以确保家庭安全。

通过这样的方式,即便只发送了一条消息,也能触发两个独立的IoT设备同时做出响应,从而实现了高效的跨设备通信与协同工作。

发布-订阅模式详解

三、Pub/Sub模型有哪些优势?

Pub/Sub 模式为表带来了许多好处,包括但不限于:


四、何时应使用 Pub/Sub 模式?

Pub/Sub 的松散耦合、异步特性和固有的可扩展性使其成为发布者和订阅者数量较高且波动的分布式系统的绝佳解决方案。您可以将 Pub/Sub 用于许多不同的目的,例如:


今天的分享就到这里啦,EBYTE每一天都致力于更好的助力物联化、智能化、自动化的发展,提升资源利用率,更多产品更多资料,感兴趣的小伙伴可以登录我们的亿佰特官网和企业公众号(微信号:cdebyte进行了解,也可以直接拨打400电话咨询技术专员!


相关阅读:

1、【教程】PLC利用函数块连接MQTT订阅消息(一)

2、【教程】PLC利用函数块连接MQTT订阅消息(二)

3、【物联科普】详解发布-订阅模式与观察者模式



亿佰特官网 4000-330-990

https://www.wjx.cn/jq/84863372.aspx