第四十四章 九析带你轻松完爆 Istio - Envoy 介绍

系列文章:


总目录索引:九析带你轻松完爆 istio 服务网格系列教程

目录

1 前言

2 邀约

3 Envoy 介绍

4 Envoy 特性

    4.1 自包含

    4.2 C++ 11 代码库

    4.3 L3 / L4 过滤器体系架构

扫描二维码关注公众号,回复: 11318182 查看本文章

    4.4 HTTP L7 过滤器体系架构

    4.5 HTTP / 2 支持

    4.6 MongoDB & DynamoDB L7 支持


1 前言

        如果你对博客有任何疑问,请告诉我。

1.png


2 邀约

        你可以从 b 站搜索 “九析”,获取免费的、更生动的视频资料:

clipboard2.png


3 Envoy 介绍

        Envoy 是类似 Nginx 的网络边缘代理工具,是专为大型现代微服务架构而设计的。

        下图是 Nginx 使用场景:

clipboard3.png

        上图中,Nginx 作为边缘代理,是整个网络流量的入口。通过配置 Nginx,可将访问者请求路由到后端 Server 内的 Service 进行处理。但是问题来了,如果我们想控制 Service A 和 Service B 之间的流量就没有办法了,因为它们之间并没有任何边缘代理。

        下图是 Envoy 使用场景:

clipboard4.png

        上图中,Envoy 不但作为边缘代理(类似 Nginx)是整个网络流量的入口,同时也可以作为服务(service)代理。这样的网络拓补结构不但可以设置访问者路由规则,也可以设置 service A 与 Service B 之间的路由规则。因此,这样就可以全方位控制微服务内部到内部、外部到内部的所有网络流量,而上图中 Nginx 仅仅控制由外到内的网络流量。


4 Envoy 特性

4.1 自包含

        Envoy 是自包含的设计,它和应用服务器各自独立运行,并不对服务器内的应用进行侵入。这样设计的好处在于可以支持任何语言、任何框架所编写的微服务。此外,正因为自包含、无侵入的设计可以使得升级或部署更透明和高效

4.2 C++ 11 代码库

        Envoy 是基于 C++ 11 代码库进行编写的,因为 C++ 11 跟其他编程语言相比,既提供了出色的性能,又大大提高了开发人员的生产力。

4.3 L3 / L4 过滤器体系架构

        Envoy 的设计采用过滤器的体系架构。它通过原生或者自定义的过滤器来执行不同的 TCP 代理任务。已经提供的原生过滤器包括原始 TCP 代理、HTTP 代理、TLS 客户端证书认证等。

4.4 HTTP L7 过滤器体系架构

        Envoy 除了在 L3、L4 提供过滤器外,还在 L7 提供了 HTTP 过滤器,可以提供诸如缓冲、速率限制、路由/转发等功能。

4.5 HTTP / 2 支持

        在 HTTP 模式下运行时,Envoy 支持 HTTP / 1.1 和 HTTP / 2。这就意味着可以桥接 HTTP / 1.1 和 HTTP / 2 客户端与目标服务器的任何组合。

4.6 MongoDB & DynamoDB L7 支持

        Envoy 支持 MongoDB 和 DynamoDB 连接的 L7 嗅探和统计信息生成。

猜你喜欢

转载自blog.51cto.com/14625168/2505768