【问题标题】:Envoy proxy with rabbitmq使用 rabbitmq 的 Envoy 代理
【发布时间】:2020-08-12 11:06:54
【问题描述】:

我们一直在迁移到 .net 核心控制台应用微服务。目前,每个微服务在链中工作并将消息放入rabbitmq,然后下一个服务从rabbitmq中选择一条消息,处理它,然后放入另一个rabbitmq....我们大约有9个服务。

我们看到服务失败并且不知道原因的问题,但经常看到rabbitmq连接问题或网络问题影响下一个服务器(一些虚拟机将所有服务托管在同一个盒子上,其他则分布在盒子之间) 我一直在研究特使代理,因为它处理断路器等东西并声称具有可观察性

但是,我在网上找不到任何人在 rabbitmq 中使用 envoy 代理

envoy 代理可以以这种方式与 rabbitmq 一起使用吗? 还是 envoy 代理充当队列?

我们目前每秒处理大约 4,000 条消息,我们需要尽可能接近实时地处理。

【问题讨论】:

    标签: rabbitmq microservices envoyproxy


    【解决方案1】:

    Envoy 不充当队列,因此它不能替代您基于消息的通信系统。但是,它可以代理往返于 RabbitMQ 服务器的流量,为您提供一些您正在寻找的内容。

    您要做的是使用TCP Proxy 功能来设置RabbitMQ 的TCP 反向代理。然后你的服务器应该都连接到 Envoy 代理而不是直接连接到消息队列。然后,Envoy 的内置统计信息将输出它处理的 TCP 连接(所有 RabbitMQ 协议似乎都是 TCP)的指标。它还本质上支持断路器、超时、重试等,所以你会得到所有这些。但您肯定需要根据您的特定部署调整这些。

    我们已经在我的公司多次使用这种模式,只是使用 Kafka 而不是 RabbitMQ。但是,由于它们都是基于 TCP 的,因此应该类似地工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      • 1970-01-01
      • 2021-05-28
      • 1970-01-01
      • 2021-01-07
      • 1970-01-01
      • 2019-05-20
      相关资源
      最近更新 更多