Consul vs. Envoy and Other Proxies

Consul vs. Envoy and Other Proxies

现代服务代理为微服务和云环境提供高级服务路由,身份验证,遥测等。Envoy是一个受欢迎且功能丰富的代理。

代理需要丰富的配置才能运行,因为必须配置后端地址,前端侦听器,路由,过滤器,遥测传输等。此外,现代基础设施包含许多代理,通常每个服务一个代理,因为代理部署在服务旁边的“边车”模型中。因此,代理的主要挑战是配置蔓延和编排。

代理形成所谓的“数据平面”:数据为网络连接传播的路径。在此之上是“控制平面”,它提供数据平面的规则和配置。代理通常与外部解决方案集成以提供控制平面。例如,Envoy与Consul集成以动态填充服务后端地址。

Consul是一种控制平面解决方案。服务目录充当服务及其地址的注册表,可用于为代理路由流量。 Consul的Connect功能提供TLS证书和服务访问图,但仍需要在数据路径中存在代理。作为控制平面,Consul集成了许多数据平面解决方案,包括Envoy,HAProxy,Nginx等。

Consul提供了一个用Go编写的内置代理。这为易用性提供了性能:通过内置于Consul,Consul的用户可以开始使用Connect等解决方案而无需安装其他软件。但内置代理并不意味着与Envoy等专用代理解决方案在功能或性能上展开竞争。 Consul使第三方代理能够与Connect集成,并提供数据平面,Consul作为控制平面运行。

Consul的Connect功能通过授权TLS连接成功或失败来在第4层运行。代理为第7层问题提供了出色的解决方案,例如基于路径的路由,跟踪和遥测等。 Consul鼓励使用提供用户所需功能集的任何代理。

此外,通过支持可插拔数据平面模型,可以根据需要部署正确的代理。对于非性能关键应用程序,可以使用内置代理。对于性能关键型应用程序,可以使用Envoy。对于可能需要硬件的一些应用程序,可以部署诸如F5设备的硬件负载均衡器。 Consul提供了一个API,可以集成所有这些解决方案。

猜你喜欢

转载自blog.csdn.net/longgeqiaojie304/article/details/85266586
今日推荐