在软件架构中,发布订阅是一种消息范式,消息的发送者(称为发布者)不会将消息直接发送给特定的接收者(称为订阅者)。而是将消息发送某个频道上,无需了解哪些订阅者可能存在。同样的,订阅者可以表达对一个或多个频道的兴趣,只接收感兴趣的消息,无需了解哪些发布者存在。
这种模式提供了更大的网络可扩展性和更动态的网络拓扑,同时也降低了对发布者和发布数据的结构修改的灵活性。
涉及三个重要概念:
即消息的生产者,现实中,我们可以简单认为电视台演播室,就是消息的发布者,负责把播放消息。
即消息接收者,现实中,可以把电视观众视为订阅者。一个订阅者同时可以订阅多个频道,这样就能收到多个频道上的消息。
即消息的分类概念,这个和现实中电视频道是一个概念。
在传统的订阅-发布模型基础上,我们可以很容易实现广播效果:
==订阅者向当前所有频道上发送消息,那么就形成了广播形式==
beyod开发之初,就考虑到集群应用环境,所以也内建了发布订阅模型支持,用于构建分布式网络应用。