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