Hi Microservices Gurus,
我对微服务的服务到服务通信体系结构有疑问。 Istio或任何服务网格都可以使微服务通信的路由,发现和弹性易于管理。但是,它没有涵盖跨越一个以上微服务(分布式事务的一种)的事务的重要方面,该事务很好地包含在基于事件的微服务体系结构中。但是,显然,事件驱动的体系结构缺少服务网格覆盖的方面。因此,我想知道,这是更好的方法,还是可以将服务网格与事件驱动的体系结构混合使用,以利用两种模式的优势。但是,如果这种混合是可能的,那么事件驱动的总线(例如Kafka)将不会干扰Istio使用的侧车代理/控制平面的内部工作模式。
答案 0 :(得分:3)
您正在混淆几件事。
但是服务网格无法解决使用Kafka或任何其他消息代理解决的任何其他服务间数据交换问题。您的微服务甚至可以被驱动-服务网格将不会对此产生干扰。
答案 1 :(得分:1)
服务网格和事件驱动的架构(例如Apache Kafka)是互补且正交的:
请查看我写的以下材料(博客文章,幻灯片,视频记录),其中涵盖了这些概念以及它们的更详细结合:
博客文章:Service Mesh and Cloud-Native Microservices with Apache Kafka, Kubernetes and Envoy, Istio, Linkerd
幻灯片组:Kafka, Kubernetes, Envoy and Istio
视频录制:Service Mesh and Event Driven Architectures like Apache Kafka
答案 2 :(得分:0)
您的问题是服务网格不能涵盖跨越一个以上微服务(分布式事务的一种)的事务的重要方面,这在基于事件的微服务体系结构中很好地包含了,那是不正确的。服务网格在分布式微服务通信方面处理得很好,但服务网格可以很好地支持同步RESTful和常规的请求-响应交互,它不支持异步的,事件驱动的交互,也不适合将云原生的微服务与旧版应用程序。对于事件驱动的体系结构,您必须看起来像事件网格而不是服务网格。查看链接...