数据总线提供了各种功能,了解这些功能有助于您更高效地使用数据总线。
订户
订阅者是在数据总线中注册以接收来自消息组的数据的端点。不能有多个订阅者具有相同的消息组和相同的订阅者 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 }
消息批处理
修剪后的消息示例:
[ { "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 订阅这些实体。例如,订阅主机消息组有助于关联从问题消息组收到的事件的主机。