在微服务系统中,我有两个服务:service1 有一段数据和 service2 需要不时更新数据。为了获取状态,service2通过HTTP调用调用服务1。
service2 ---(获取数据调用)---> service1
由于 service1 每隔几个小时更改一次数据状态,我想为了从网络中减轻一些负载,我可以通过从 service1 发送到 service2 的 RabbitMQ 消息来替换通过 HTTP 调用的持续轮询并且 service2 可以缓存它直到收到下一条消息。
service1 ---(发送 rmq 消息)---> service2
考虑到目前 HTTP 请求大约每 10 秒发出一次,并且数据每隔几个小时更新一次,从网络的角度来看是否更容易支持新设计?换句话说,监听空 RMQ 队列的网络密集度如何?它是否比每 10 秒发送一次 HTTP GET 调用强度低?
监听一个空的 RabbitMQ 队列不是网络密集型的。消息由 RabbitMQ 推送到队列的订阅者,因此只有当队列中出现新消息时才会发生通信。
监听一个空的 RMQ 队列的网络密集度如何?它是否比每 10 秒发送一次 HTTP GET 调用强度低?
是的,它不那么“密集”。我认为“密集”是指消耗的带宽。
RabbitMQ 消费者仍会偶尔发送心跳消息。
老实说,最大的改进将从轮询架构转变为基于推送的架构。
注意: RabbitMQ 团队监控
rabbitmq-users
邮件列表,有时只在 StackOverflow 上回答问题。