使用Envoy Sidecar代理的微服务模式:系列

过去,我曾写过一篇关于“我对'2.0'微服务堆栈感到兴奋的博客”以及其中的一些内容。 我什至试图阐明为什么服务交互/对话和网络是实际微服务实现中最难的部分。 在本篇文章(以及后续系列文章)中,我想开始更进一步。

随着最近Istio Mesh项目的公告,包括Red Hat对项目的支持 ,我想在接下来的博客中深入了解该技术( Envoy Proxy , Istio Mesh等),并解释其功能,工作原理,以及恕我直言,这是改变游戏规则的原因。 跟随我@christianposta ,紧跟这些博客文章的发布。 我认为在下一个系列中介绍的流程将是这样的:

  • 什么是Envoy代理 ,它如何工作?
  • 如何使用Envoy Proxy实现一些基本模式?
  • Istio Mesh如何适合这张照片
  • Istio Mesh的工作方式,以及如何通过Envoy跨集群启用高阶功能
  • Istio Mesh身份验证的工作方式

在接下来的几篇博客文章中,我想介绍Envoy Proxy提供的一些客户端,服务交互功能。 为了快速上手,Envoy Proxy是一个小型,轻量级的本机/ C ++应用程序,它具有以下功能(以及更多功能):

  • 服务发现
  • 自适应路由/客户端负载平衡
  • 自动重试
  • 断路器
  • 超时控制
  • 背压
  • 限速
  • 指标/统计信息收集
  • 追踪
  • 请求遮挡
  • 服务重构/请求屏蔽
  • 服务之间的TLS
  • 强制服务隔离/离群值检测

博客系列流程

我将以“深度探究”的方式来介绍这些先驱性主题:即,这些功能中的每一项在指定的场景(如演示等)下如何工作。 对于前几篇博客文章,将不再是“如何轻松使用它或对其进行操作”,而更多是“在较低的使用水平下我应该期待的行为”。

这是接下来几部分的想法(将在发布时更新链接):

  • 断路器(第一部分)
  • 重试/超时(第二部分)
  • 分布式跟踪(第三部分)
  • 普罗米修斯的度量标准收集(第四部分)
  • 接下来的部分将介绍更多的客户端功能(服务发现,请求阴影,TLS等),只是不确定哪一部分将是:

第二部分和第三部分应该在下周发布: 随时关注!

每个主题的演示

每个示例都包括完整的演示,配置,帮助脚本以及有关如何演示的文档。 这些的源代码在我的github上的envoy-microservices-patterns存储库下。 我强烈建议您去那里看看。

边车

Envoy非常适合作为sidecar部署进行部署 ,这意味着它与您的应用程序(一对一)一起部署 ,并且您的应用程序通过Envoy Proxy与外界进行交互。 这意味着,作为应用程序开发人员,您可以通过配置利用Envoy提供的功能(例如服务发现,客户端负载平衡,断路器,跟踪等)。 此外,这意味着您的应用程序不必包含许多库,依赖项,可传递依赖项等,并希望每个开发人员都能正确实现这些功能。

作为Java开发人员,这太棒了! 这意味着我们不必包括Netflix OSS Ribbon / Hystrix / Eureka / Tracing库之类的东西(Hystrix的创建者Ben Christensen在2016年微服务峰会上 发表了精彩的演讲 , 对此进行了解释……)。

概述和背景

这些演示故意很简单,因此我可以分别说明这些模式。

所有这些演示都由一个客户端和一个服务组成。 客户端是一个Java http应用程序,它模拟对“上游”服务进行http调用(请注意,我们在这里使用Envoys术语,并且贯穿此repo )。 客户端打包在名为docker.io/ceposta/http-envoy-client:latest的Docker映像中。 http-client Java应用程序旁边是Envoy Proxy的实例。 在此部署模型中,Envoy与服务(在本例中为http客户端)一起作为边车进行了部署。 当http客户端发出出站呼叫(到“上游”服务)时,所有呼叫都通过Envoy代理端进行。

这些示例的“上游”服务是httpbin.org 。 httpbin.org允许我们轻松模拟HTTP服务行为。 太棒了,所以如果您没有看过,请检查一下。

使用Envoy Sidecar代理的微服务模式:系列_第1张图片

每个演示都将有自己的envoy.json配置文件。 我绝对建议您查看配置文件各部分的参考文档,以帮助您理解配置。 datawire.io的好伙伴还为Envoy及其配置提供了不错的介绍 ,您也应该查看一下。

请继续关注 ! 第一部分已经结束 ,下周下半年还会有更多内容!

翻译自: https://www.javacodegeeks.com/2017/05/microservices-patterns-envoy-sidecar-proxy-series.html

你可能感兴趣的:(使用Envoy Sidecar代理的微服务模式:系列)