2

我想知道MQ是否可以用作状态缓存进行监控?这是一个好主意吗?

理论上,您可以拥有许多源(监控代理)来检测问题状态并通过 MQ 系统(如 RabbitMQ)将它们分发给订阅者。但是有没有人听说过使用 MQ 系统来缓存状态,所以当客户端初始化时,他们会在订阅新的状态消息之前从状态队列中读取?这是使用 MQ 的坏方法吗?

回顾一下,监视器将从状态队列中读取当前状态,然后设置订阅队列以接收任何新的更新。状态队列将通过删除任何不再有效的警报来维护,监控代理将警报放在那里开始。

优势将是分散的通知,并且通过添加更多的 mq 系统来中继事件理论上非常畅销。

4

2 回答 2

1

我有一个 Rabbit MQ 用例,它保存了系统的最后一个有效状态。当该系统的新客户端连接时,它会收到当前状态。

做起来很简单!

您必须使用 Last Value Cache 自定义交换https://github.com/simonmacmullen/rabbitmq-lvc-plugin

安装后,您将所有状态消息发送到该交换机。每个需要状态信息的客户端都将创建一个队列,该队列将在实例化时将最新状态传递到该队列。之后,它将继续接收状态更新。

于 2013-05-03T14:28:25.507 回答
1

IBM MQ FTE 使用这种方式来存储日志。我认为这是个好主意,如果您可以防止目标队列溢出,因为 IBM MQ 例如仅在 GET 调用期间删除过期消息。

于 2013-05-03T08:01:31.433 回答