服务网格和异步服务

Service mesh and Async services

我打算将 K8s/Istio 引入我的基础设施。 现在我有很多使用 RabbitMQ 相互通信的服务。

服务网格概念似乎假设所有服务都应该是同步的。

我想至少让我的一些服务保持异步,并利用 istio 提供的相互 TLS 身份验证以及聚合监控。

有什么tools/methods可以帮助我简化同步和异步服务的管理吗?

谢谢,

请注意,Istio 可以控制 TCP 之上的非 HTTP 协议,包括提供双向 TLS 身份验证。请参阅 HTTPS 的 mTLS 示例(视为不透明的 TCP)- https://preliminary.istio.io/docs/tasks/security/https-overlay.html.

我对AMQP不熟悉,但是既然是protocol on top TCP,应该可以通过Istio来控制它作为不透明的TCP。

显然有通过 Kafka 过滤器向 Envoy 代理添加异步(事件驱动)消息传递的 WIP:https://github.com/envoyproxy/envoy/issues/2852

这里还有关于使用服务网格进行 Event-Driven 消息传递的很好的总结:https://www.infoq.com/articles/service-mesh-event-driven-messaging