我试图了解微服务架构的全貌。我在Java上工作,因此与Spring Boot应用程序一起工作。 据我了解,spring与Netflix模块(如服务发现,zuul api Gateway,hystrix和其他模块)具有良好的集成。但是,在将生产应用程序部署为任何具有kubernetes的云提供商的容器中时,我可以看到它们使用envoy和Istio来实现弹性负载平衡和其他任务。
我不知道Istio和使节适合这里的位置,而不是Netflix的oss模块
答案 0 :(得分:3)
Istio适合微服务,因为它使您可以将由不同框架和语言以不同方式完成的类似实现(重试,断路,日志记录,跟踪等)抽象到Sidecar容器中。
微服务架构的一个核心原则是“我们应该使我们的团队能够选择他们认为适合每个组件用例的技术堆栈(语言,框架,CI等)。”但是,我们希望确保每个人都遵守跨领域的问题,例如重试,断路,日志记录和跟踪,这是横跨整个生态系统的规则。
工具之间的多样性有时会引入不同的行为(例如,重试使用的Go和C#库可能会使库在细节上有所不同,而这些细节对您来说很重要),这正是Istio试图解决的问题。
它使您可以编写可重复使用的sidecar容器,以补充现有应用程序的现有行为,从而使他们不必担心交叉问题,因为它们已与第5层(服务网格)集成在一起。
PS:欢迎使用Stackoverflow!