docker - Service Mesh(如 Istio)vs Even Driven 微服务架构
问题描述
嗨微服务大师,
我有一个关于微服务的服务到服务通信架构的问题。Istio 或任何服务网格都可以使微服务通信的路由、发现和弹性易于管理。但是,它没有涵盖跨越多个微服务(一种分布式事务)的事务的重要方面,这很好地包含在基于事件的微服务架构中。然而,显然,事件驱动架构错过了服务网格很好地涵盖的方面。所以,想知道哪种方法更好,或者有一种方法可以将两种服务网格与事件驱动架构相结合,以利用两种模式的优势。但如果这种混合是可能的,那么事件驱动总线(如 Kafka)不会干扰 Istio 使用的侧车代理/控制平面的内部工作模式。
解决方案
你混淆了几件事。
- Istio、linkerd 等解决了云原生、容器化微服务带来的一些基本设计/架构问题。例如服务发现、断路器等。过去使用嵌入在 Spring cloud、hystrix、ribbon 等应用程序中的库来解决这些问题。服务网格在容器世界的范式中解决了这个问题。
但是服务网格不能解决任何其他使用 Kafka 或任何其他消息代理解决的服务间数据交换问题。您的微服务可以是事件驱动的,也可以不是事件驱动的——服务网格不会干扰它。
推荐阅读
- python - Tkinter while 在后台循环
- c# - Map* 与 MapMiddleware*
- c - 为什么 scanf 不能正确地将字符的 ascii 值存储在整数变量中?
- python - Flask SQLalchemy - AttributeError:foreign_keys
- python - 使用 bash 下载多个 pdf 文件
- android - Flutter:多个变体输出配置为使用相同的文件名
- javascript - .then() 中的响应未准备好
- angularjs - 使用 OIDC 的角度深度链接导航
- libreoffice - 获取宏错误:参数不是可选的
- android - 在 React-Native Android 中实现 ImagePicker