发布/订阅

✍ dations ◷ 2025-05-31 09:45:12 #软件设计模式,中间件

在软件架构中,发布-订阅是一种消息范式,消息的发送者(称为发布者)不会将消息直接发送给特定的接收者(称为订阅者)。而是将发布的消息分为不同的类别,无需了解哪些订阅者(如果有的话)可能存在。同样的,订阅者可以表达对一个或多个类别的兴趣,只接收感兴趣的消息,无需了解哪些发布者(如果有的话)存在。

发布/订阅是消息队列范式的兄弟,通常是更大的面向消息中间件(英语:Message-oriented_middleware)系统的一部分。大多数消息系统在API中同时支持消息队列模型和发布/订阅模型,例如Java消息服务(JMS)。

这种模式提供了更大的网络可扩展性和更动态的网络拓扑,同时也降低了对发布者和发布数据的结构修改的灵活性。

在发布/订阅模型中,订阅者通常接收所有发布的消息的一个子集。选择接受和处理的消息的过程被称作过滤。有两种常用的过滤形式:基于主题的和基于内容的。

在基于主题的系统中,消息被发布到主题或命名通道上。订阅者将收到其订阅的主题上的所有消息,并且所有订阅同一主题的订阅者将接收到同样的消息。发布者负责定义订阅者所订阅的消息类别。

在基于内容的系统中,订阅者定义其感兴趣的消息的条件,只有当消息的属性或内容满足订阅者定义的条件时,消息才会被投递到该订阅者。订阅者需要负责对消息进行分类。

一些系统支持两者的混合:发布者发布消息到主题上,而订阅者将基于内容的订阅注册到一个或多个主题上。

在许多发布/订阅系统中,发布者发布消息到一个中间的消息代理,然后订阅者向该消息代理注册订阅,由消息代理来进行过滤。消息代理通常执行存储转发的功能将消息从发布者发送到订阅者。

最早公开描述发布/订阅系统之一的是Isis Toolkit的“新闻”子系统,1987年,在计算机协会 (ACM)的操作系统原理的研讨会上,,在论文《在分布式系统中利用虚同步》中。该文描述的发布/订阅技术是由Frank Schmuck发明的。

发布/订阅系统最严重的问题是其主要优点的副作用:发布者解耦订阅者。

发布/订阅系统必须仔细设计,才能提供特定的应用程序可能需要的更强大的系统性能,例如有保障的交付。

在有少量发布者和订阅节点的小型网络和低信息量时发布/订阅能够自如伸缩。然而,随着节点和消息量的增长,不稳定性随之增长,限制了发布/订阅网络的最大可扩展性。大规模时吞吐量不稳定的例子包括:

使用中介(服务器)的发布/订阅系统,同意中介发送消息给带内(英语:In-band_control)订阅者,会引发安全问题。中介可能被愚弄,从而将通知发送给错误的客户端,增大了针对客户端的服务请求被拒绝的可能性。中介本身可能超载,因为他们分配资源来跟踪创建的订阅。

即使不依赖中介的系统,订阅者也可能可以接收未被授权的数据。未经授权的发布者可能将不正确或损坏的消息引入到发布/订阅系统。对于广播或多播消息的系统,这是尤其真实的。加密(例如传输层安全性协议(SSL/TLS)),可以防止未经授权的访问,但不能防止损坏的消息被授权的发布者引入。除了发布/订阅架构,例如客户端/服务器系统,也经常碰到授权的消息发送者有恶意行为。


相关

  • 地球构造地球的结构同其他类地行星相似,是层状的,它们可以通过化学和流变学特性区分。地球拥有一层富含硅的地壳、一层溶融状的地幔、一层液体的外核和一个固体的内核。这些对地球内部
  • 法厄安德鲁·扎卡里·法厄(英语:Andrew Zachary Fire,1959年4月27日-)生于加利福尼亚,美国医学家,斯坦福医学院病理学和遗传学教授,2006年因与马萨诸塞大学医学院分子医学教授克雷格·梅
  • 小岩部神经小岩部神经(lesser petrosal nerve),又称小浅岩部神经,为舌咽神经的一条分支,属于一般内脏传出神经(GVE),神经纤维中带有来自鼓室神经丛(英语:tympanic plexus)的副交感神经纤维,并输入
  • 大甲溪大甲溪是台湾中部重要的河川,属于中央管河川,主流上游为南湖溪,其源流中央尖溪发源于南湖大山东峰(标高3,632米),流域主要分布于台中市,并包括南投县、宜兰县之一小部分。南湖溪流
  • 提拉米苏古罗马 · 中世纪 · 文艺复兴 · 现代威尼斯和威尼托 · 托斯卡尼 · 西西里 · 维琴察 · 罗马 (罗马饮品) · 那不勒斯面包 · 奶酪 (PDO) · 油酥糕点 ·
  • 阿拉伯马格里布联盟阿拉伯马格里布联盟(英语:Arab Maghreb Union,缩写:AMU)是一个马格里布阿拉伯国家政府间国际组织。马格里布是北非地区的阿拉伯国家的代称。1989年,在卡扎菲的发起下,摩洛哥、阿尔
  • 小霸王小霸王公司始建于1987年中华人民共和国广东省中山市,创办人同步步高电子一样为段永平,专业从事教育类电子产品的开发研究、生产和销售。现除教育类产品外,还开发销售影音播放产
  • 柯瑞·贾德纳科里·斯科特·加德纳(英语:Cory Scott Gardner;1974年8月22日-),是一位美国共和党政治人物,现任科罗拉多州美国参议院议员、前科罗拉多州美国众议院议员及前科罗拉多州众议院议员
  • 白云 (台湾艺人)李国弘(1970年11月28日-),艺名白云,台湾男演员、谐星、殡葬业者,三级片演员出身。曾经当过宪兵,父亲是安徽籍退伍军人。以肥胖壮硕的身材并常丑化自己来搞笑闻名,经常出现在各大综艺
  • 羊甫头墓地昆明羊甫头墓地,位于中华人民共和国云南省昆明市官渡区小板桥镇的大羊甫村,海拔高度1926米。羊甫头墓地分布在一馒头形缓丘上,西北有宝象河流过。缓丘面积5万余平方米,墓地总面