SAP Event Mesh 简介
Get Started with Messaging for Decoupled Communication
Step 1: What is the SAP Event Mesh service?
SAP Event Mesh 是一种完全托管的服务,用于连接应用程序、服务和系统,以便它们可以通过消息和事件相互交互。
它通过引入中央消息代理取代了传统的点对点通信。 虽然点对点通信适用于在有限数量的发送方和接收方之间共享数据,但可扩展性很快就会成为一个问题。 SAP Event Mesh 解决了这个问题,并确保可以在发送方和多个接收方之间大规模可靠地交换消息。
此外,通过引入消息代理,您可以解耦应用程序、服务和系统之间的通信,以便可以异步(非阻塞)发送消息。 异步通信提高了性能和可扩展性,因为发送方在等待单个接收方在线接收直接消息时不会减慢或阻塞。
由于 SAP Event Mesh 负责消息传递,因此发送方无需知道哪些应用程序、服务或系统将接收哪些数据。
发送应用程序不会因等待来自接收方的非关键响应而减慢,这些接收方可能处于离线状态并且无法在消息发布时接收和响应消息。
接收应用程序可以订阅具有业务重要性的消息并确保接收所有相关更新,并且可以按照自己的节奏使用这些消息。
SAP Event Mesh 的使用场景
解耦:远程和异步通信。
集成:不同编程语言/环境和系统之间的通用翻译器。
可靠性:根据不同的服务质量级别确保消息传递,并充当生产者和消费者之间的中介。
高容量:消息代理弹性支持高度可扩展的通信用例。
事件驱动架构:跨系统和环境边界分发事件,并基于不同的 SAP 后端系统为事件驱动架构提供支持。
这些用例建立在 SAP Event Mesh 的哪些特性和特征之上?
大规模可靠通信
无缝连接应用程序、系统和服务
解耦通信以获得更大的可扩展性
提供弹性以处理意外的数据流量高峰
在云中传输、管理和使用事件
确保基于标准的无缝集成
Protocols and libraries
SAP Event Mesh 支持标准消息传递协议,以跨混合环境连接应用程序、服务和系统。
WebSocket 上的高级消息传递队列协议 (Advanced Messaging Queuing Protocol, AMQP) 1.0 是用于应用程序或组织之间消息传递的开放标准协议。 AMQP 的定义特性是面向消息、排队、路由(包括点对点和发布订阅)、可靠性和安全性。
基于 WebSocket 的消息队列遥测传输 (Message Queuing Telemetry Transport, MQTT) 3.1.1 是一种轻量级消息传递协议,专为低带宽、高延迟而设计。 这是未在云中运行的应用程序使用的推荐协议。
HTTP 1.1 REST 支持允许使用 REST API 公开消息传递功能。可以通过 HTTP REST 调用将消息发布到队列和主题中并从队列和主题中使用。
您可以通过 WebSocket 库和 MQTT 3.1.1 使用 AMQP 1.0。 通过用于 node.js 的 WebSocket 库。 SAP Event Mesh 还支持协议无关的库,这些库可用于 Java 和 Node.js 的应用程序配置级别。
Messaging concepts
Queues
队列是集合中的实体有序排列的集合,对队列的主要操作是向后终端位置添加实体和从前终端位置移除实体。
SAP Event Mesh 使应用程序能够通过消息队列相互通信。 发送应用程序将消息发送到特定的命名队列。 接收应用程序与其队列之间存在一一对应的关系。 消息队列会保留消息,直到接收应用程序使用它。 您可以使用 SAP Event Mesh 仪表板管理这些队列。
Topics
主题被命名为向其发布消息的逻辑通道。 基于主题的系统中的订阅者接收发布到他们订阅的主题的所有消息。 主题的所有订阅者都会收到他们自己的同一消息的副本。
SAP Event Mesh 使发送应用程序能够将消息和事件发布到主题。 应用程序必须订阅该主题并在发送消息时处于活动状态。 主题不保留消息。 当每个消息需要被多个接收应用程序使用时,可以使用此方法。
Queue Subscriptions
通过队列订阅,SAP Event Mesh 使发送应用程序能够将消息发布到主题。 主题将消息直接发送到它所绑定的队列。 例如,来自 SAP S/4HANA 系统(事件源)的事件只能发送到一个主题。 队列订阅确保消息被保留,直到它被接收应用程序使用。
Message Client
消息客户端允许您使用其自己的唯一凭据连接到 SAP Event Mesh 服务以发送和接收消息。 客户端可以在 SAP 业务技术平台内部或外部运行。
您可以创建多个消息客户端,这些客户端可以通过一组凭据进行区分,这些凭据由命名空间和连接规则组成,这些规则定义了消息客户端可以向其发送和接收消息的队列或主题列表。
命名空间是一个唯一的前缀,它定义了在特定消息客户端的上下文中创建的所有队列或主题。 在 SAP Event Mesh 中管理队列或主题时,命名空间允许消息客户端识别用于通信的队列或主题。