介绍¶
Envoy 是一个面向服务架构的 L7 代理和通信总线而设计的,这个项目诞生是出于以下目标:
对于应用程序而言,网络应该是透明的,当发生网络和应用程序故障时,能够很容易定位出问题的根源。
Envoy 的核心功能:
- 非侵入的架构:Envoy 是和应用服务并行运行的,透明地代理应用服务发出/接收的流量。应用服务只需要和 Envoy 通信,无需知道其他微服务应用在哪里。
- 基于 Modern C++11 实现,性能优异。
- L3/L4 过滤器架构:Envoy 的核心是一个 L3/L4 代理,然后通过插件式的过滤器(network filters)链条来执行 TCP/UDP 的相关任务,例如 TCP 转发,TLS 认证等工作。
- HTTP L7 过滤器架构:HTTP 在现代应用体系里是地位非常特殊的应用层协议,所以 Envoy 内置了一个非常核心的过滤器:
http_connection_manager
。http_connection_manager
本身是如此特殊和复杂,支持丰富的配置,以及本身也是过滤器架构,可以通过一系列 http 过滤器来实现 http 协议层面的任务,例如:http 路由,重定向,CORS 支持等等。 - HTTP/2 作为第一公民:Envoy 支持 HTTP/1.1 和 HTTP/2,推荐使用 HTTP/2。
- gRPC 支持:因为对 HTTP/2 的良好支持,Envoy 可以方便的支持 gRPC,特别是在负载和代理上。
- 服务发现: 支持包括 DNS, EDS 在内的多种服务发现方案。
- 健康检查:内置健康检查子系统。
- 高级的负载均衡方案:除了一般的负载均衡,Envoy 还支持基于 rate limit 服务的多种高级负载均衡方案,包括:
automatic retries
、circuit breaking
、global rate limiting
等。 - Tracing:方便集成 Open Tracing 系统,追踪请求
- 统计与监控:内置 stats 模块,方便集成诸如 prometheus/statsd 等监控方案
- 动态配置:通过
“动态配置API”
实现配置的动态调整,而无需重启 Envoy 服务的。
学完本课程以后,你可以得到:
社区&读者交流¶
- 博客:阳明的博客
- 微信群:
k8s技术圈
,扫描我的微信二维码,阳明,或直接搜索微信号iEverything
后拉您入群,请增加备注(k8s或kubernetes) - 知乎专栏:k8s技术圈
- 开发者头条:k8s技术圈
- 微信公众号:扫描下面的二维码关注微信公众号
k8s技术圈
- 优点知识:优点知识 是一个综合的技术学习平台,本书配套的视频教程将会发布在该平台上面,感兴趣的朋友可以扫描下发的二维码关注自己感兴趣的课程。