HL7中国发布订阅框架实施指南
2025.03.10 - release

HL7中国发布订阅框架实施指南 - Local Development build (v2025.03.10) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

首页

官方URL: http://hl7.org.cn/fhir-ig/pubsub/ImplementationGuide/hl7cn.fhir.pubsub 版本: 2025.03.10
Draft as of 2025-03-10 机读名称: HL7CN_FHIR_PubSub

发布订阅模式是分布式系统中用于不同组件或服务之间异步通信的一种架构设计模式。消息的发送者不会将消息直接发送给特定的接收者,而是通过通知代理将消息广播出去,让订阅该消息主题的订阅者消费到。发布订阅模式允许在系统的不同组件之间传递消息,而这些组件之间无需知道彼此的身份(即它们是解耦的),使它更加灵活和可扩展。

本实施指南按照FHIR R5标准进行设计。

本实施指南的完善成熟度为1,尚有很多细节未进行明确说明。另外,还需增加更多的通道类型,以适应不同的业务场景需要。

优势

发布订阅模式的优点可以归纳为:

  • 松耦合 发布者和订阅者之间没有直接联系,它们通过中间的消息代理(如消息队列或事件总线)进行通信。这种解耦使得系统更加灵活,可以独立地添加或移除发布者和订阅者,而不会影响其他组件。
  • 高伸缩性 增加了系统的可伸缩性,并提高了发送者的响应能力。原因是发送方可以快速地向输入通道发送一条消息,然后返回到其核心处理职责,而不必等待子系统处理完成。然后消息传递的基础结构负责确保把消息传递到每个订阅者手里。
  • 高可靠性 发布者发布消息后不需要等待响应,可以继续执行其他任务。订阅者可以在方便的时候处理接收到的消息,不必立即响应。异步的消息传递有助于应用程序在增加的负载下继续平稳运行,并且可以更有效地处理间歇性故障。
  • 灵活性 一个发布者可以向多个订阅者发送消息。多个发布者也可以向同一个主题发布消息,所有订阅该主题的订阅者都会收到这些消息。你不需要关心不同的组件是如何组合在一起的,只要他们共同遵守一份协议即可。
  • 动态订阅 订阅者可以在运行时动态地订阅或取消订阅某个主题。这种灵活性使得系统能够适应不断变化的需求。

范围

与标准中的订阅框架有何不同

FHIR标准中的订阅框架更多的是描述服务端和客户端的直连模式,一种点对点的直连拓扑结构。而本实施指南提出发布订阅框架则是一种基于代理的星型拓扑结构。

连接模式的不同

何时应使用

如果你的程序只有很少的订阅者,或者需要与子系统进行实时的交互,那么发布订阅模式是不适合的。

在以下情况下可以考虑使用此模式:

  • 应用程序需要向大量消费者广播信息。
  • 应用程序需要与一个或多个独立开发的应用程序或服务通信,这些应用程序或服务可能使用不同的平台、编程语言和通信协议。
  • 应用程序可以向消费者发送信息,而不需要消费者的实时响应。
  • 应用程序需要将信息传递给多个消费者,这些消费者可能具有与发送者不同的可用性要求或正常运行时间计划。

未涉及内容

本实施指南不涉及通知的保证传递,定义它们超出本指南的范围。由遵循本实施指南的实现者决定如何支持此类机制。

实现者应了解关于通知传递的一些限制:

  • 某些通知可能无法送达。
  • 某些通知可能会多次传递。

实现系统应检测错误并在可能的情况下采取适当的措施。通知传递从可靠性上来分可以分为:

  • Simple best-Effort(不可靠)传递:一般来说,这是通知传递的默认模式。它们不保证通知接收者成功收到已发送的通知。
  • Guaranteed(可靠)传递:使用模式时,通知接收者必须先处理通知,然后才能将其视为已送达。可以采用某种技术(例如,消息队列)以保证传递。

作者

角色 姓名 组织
作者 叶彦波 HL7中国委员会