我试图了解微服务架构的全貌。我在java上工作,所以使用spring启动应用程序。据我所知,spring与Netflix模块有很好的集成,如服务发现,zuul api Gateway,hystrix和其他模块。但是当涉及到在任何云提供商中部署为容器的生产应用程序时,我会看到他们使用envoy和Istio来实现弹性负载平衡和其他任务。
我不明白Istio和特使在哪里适合而不是Netflix oss模块
Istio适用于微服务,因为它使您能够通过不同的框架和语言将不同的实现(重试,电路中断,日志记录,跟踪等)抽象到边车容器中。
微服务架构的一个核心原则是“我们应该让我们的团队选择他们认为适合每个组件的用例的技术堆栈(语言,框架,CI等)”。但是,我们希望确保每一个都遵循交叉问题,如重试,断路,记录,跟踪,这是跨越整个生态系统的规则。
跨工具的多样性有时会引入不同的行为(例如,用于重试的Go和C#库可能具有与您无关的细节区分的库),这就是Istio正在尝试解决的问题。
它允许您编写可重复使用的边车容器,以补充现有应用程序的现有行为,这样他们就不必担心交叉问题,因为它们已经与您的第5层集成(Service Mesh)
PS:欢迎来到Stackoverflow!