我可以使用我的服务网格进行事件驱动的消息传递吗?

Nat*_* Aw 4 apache-kafka istio

由于像 Istio 和 Linkerd 这样的服务网格专注于服务间通信,而不是使用 Kafka 进行事件驱动消息传递,我可以扩展服务网格来实现事件驱动消息传递吗?

胡内森 (新加坡)

Joe*_*oel 7

Istio 可以实现事件驱动的消息传递(我猜 Linkerd 也可以)。基本上,服务代理将像任何其他 TCP 流量一样拦截事件流量 [1] 并将其转发到服务,并且这仍然可以与中间的 Kafka 一起使用。

然而,正如您所说,服务网格专注于服务到服务的通信,因此您可能无法像 HTTP 通信那样轻松地调节生产者和消费者之间的流量,因为此通信通过消息代理。因此,服务网格的某些功能可能没有多大意义,例如流量转移。而其他功能仍然相关,例如具有一致的可观察性或安全性。

这里有一篇关于扩展 Istio + Kafka 的有趣博客文章,可能会给您一些想法:https://itnext.io/scalable-microservice-demo-k8s-istio-kafka-344a2610eba3

[1]:如果您使用 Envoy 的 Kafka 协议过滤器,“像任何其他 TCP 流量一样”可能并不完全正确,这可能会增加处理 kafka 消息的新功能:https: //www.envoyproxy.io/docs/envoy/latest /configuration/listeners/network_filters/kafka_broker_filter(例如更多遥测)。但这并不是让它发挥作用所必需的。