了解数据总线术语和功能
数据总线提供了各种功能,了解这些功能有助于您更高效地使用数据总线。
订户
订阅者是在数据总线中注册以接收来自消息组的数据的端点。不能有多个订阅者具有相同的消息组和相同的订阅者 URL。
订阅者 URL
从数据总线接收数据的 URL。
VMware Aria Operations for Networks
数据总线将来自任何消息组的所有消息发送到订阅者 URL。此外,还可以使用订阅者 URL 注册来自多个消息组的订阅。数据总线从您订阅任何消息组的那一刻起开始流式传输,并将一直持续到您取消订阅。系统通过内置机制处理任何暂时的通信中断,问题一旦解决,数据流式传输即恢复。您无需执行任何操作。
消息排序
当事件或对象存储在
VMware Aria Operations for Networks
中时,通过数据总线发送的消息通常按时间戳排序。但是,在某些情况下,无法满足这些排序保证。为了对消息进行可靠排序,订阅者必须利用数据总线消息中的时间戳字段,并根据时间戳对消息进行排序。 近乎实时的流式传输
在数据总线中,数据在
VMware Aria Operations for Networks
中进行处理与数据总线将数据流式传出之间具有一定的延迟。延迟时间从三秒到一分钟不等。此延迟因消息组而异,并取决于管道是否畅通。用于扩展数据处理的负载均衡器
从
VMware Aria Operations for Networks
数据总线接收数据时,可以使用负载均衡器横向扩展数据处理服务。要使用负载均衡器,必须在数据总线注册过程中将负载均衡器 URL 用作订阅者 URL。负载均衡器可以将数据分配给可横向扩展的数据处理服务。 检测信号
为了帮助对
VMware Aria Operations for Networks
数据总线与订阅者端点之间的通信通道进行故障排除,VMware Aria Operations for Networks
会每小时向每个订阅者发送检测信号消息。如果在多个订阅中指定了 URL,则订阅者将每个订阅收到一条检测信号消息。 示例:
{ "id": "c2214eea-68a6-4e5a-9e4b-ff5886a42cd3", "type": "HEARTBEAT", "specversion": "1.0", "source": "CL58EgdESzVDSEE1", "message_group": "vms", "status": "HEARTBEAT", "timestamp": 1681897371522 }
消息批处理
VMware Aria Operations for Networks
数据总线本身就支持批处理,即多条消息分组在一起,形成一批,并发送给订阅者。默认情况下,一批的最大大小为 2 兆字节。当一条消息的大小超过 2 兆字节时,将修剪这条消息。 批量创建操作会额外带来不到一分钟的延迟。
修剪后的消息示例:
[ { "id": "elfcdccb-c06a-419b-90bd-7618e8453f87", "type": "Application", "specversion": "1.0", "source": "CNaBARIHRElXRlgxRg==", "message_group": "applications", "status": "UPDATE_TRIMMED", "data": { "entity_id": "16598:561:716945762559381432", "entity_type": "Application", "name": "My-3Tier-App" } ]
传送保证
如果订阅者返回非 503 错误代码的 HTTP 代码响应,则认为消息传送成功。
如果订阅者未收到消息,但
VMware Aria Operations for Networks
未收到 503 错误代码,则 VMware Aria Operations for Networks
认为该消息已传送,不会尝试再次发送该消息,该消息可能会丢失。我们引入这种机制是为了确保连续重试不会使系统不堪重负。例如,如果您的生产环境出现故障,连续重试将会带来干扰。在这种情况下,发送非 503 的 HTTP 响应表明您不想重试。 在
VMware Aria Operations for Networks
中,消息源自不同的服务,然后添加到基于磁盘的队列中。基于磁盘的队列的有效期为两小时。 如果任何消息未在两小时内传送给订阅者,这些消息将按 FIFO 方式从队列中删除,并且不会传送给订阅者。此外,如果
VMware Aria Operations for Networks
中的消息量超出系统可以可靠转发的数量,则消息可能会被丢弃。当数据总线订阅者无法访问时,系统会尝试发送消息,直至成功。版本 6.9 增加了一种回退机制,系统以指数时间重试消息传送。 筛选
注册订阅者时,该订阅者将获取此消息组的所有消息。
VMware Aria Operations for Networks
数据总线不支持筛选消息。如果您不需要消息组中的所有消息,可以根据筛选条件丢弃消息,然后再进一步处理。此外,还可以从 VMware Aria Operations for Networks
UI 停用警示。将消息与其他对象关联
在某些情况下,数据总线收到的消息包含有关一些其他相关实体的上下文信息,而不包含这些实体的完整详细信息。但是,消息包含特定的标识符,如
entity_id
。要获取有关这些相关实体的详细信息,必须使用 API 订阅这些实体。例如,订阅主机消息组有助于关联从问题消息组收到的事件的主机。