如何解决使用RabbitMQ的特使代理
我们一直在迁移到.net核心控制台应用程序微服务。当前,每个微服务都按链式工作并将消息放入Rabbitmq,然后下一个服务从Rabbitmq提取一条消息,对其进行处理,然后放入另一个Rabbitmq...。我们大约有9个服务。
我们看到了服务失败的问题,却不知道为什么,但是经常看到Rabbitmq连接问题或击中下一台服务器的网络问题(某些虚拟机的所有服务都托管在同一个盒子中,其他虚拟机则在盒子之间分配) 我一直在寻找使节代理,因为它处理断路器等问题并声称具有可观察性
但是,我无法在网上找到任何人都在使用Rabbitmq的Envoy代理
特使代理可以以这种方式与Rabbitmq一起使用吗? 还是使者代理充当队列?
当前,我们每秒处理大约4,000条消息,我们需要尽可能近实时地处理
。解决方法
Envoy不会充当队列,因此它不能替代您基于消息的通信系统。但是,它可以代理往返RabbitMQ服务器的流量,从而为您提供所需的内容。
您要做的是使用TCP Proxy功能为RabbitMQ设置TCP反向代理。然后,您的所有服务器都应连接到Envoy代理,而不是直接连接到消息队列。 Envoy的内置统计信息将在它处理的TCP连接(所有RabbitMQ协议似乎都是TCP)上输出指标。它还从本质上支持断路器,超时,重试等,因此您将获得所有这些。但是,您绝对必须根据自己的特定部署调整这些设置。
我们在公司使用Kafka而不是RabbitMQ多次完成了这种模式。但是,由于它们都是基于TCP的,因此应该可以类似地工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。