介绍  | Envoy  | Nginx  | HAproxy  | 
|---|---|---|---|
HTTP/2  | 对HTTP/2有最完整的支持,同时支持upstream和downstream的HTTP/2  | 1.9.5以后有限支持HTTP/2,只在upstream server支持,downstream依然是1.1  | 不支持  | 
Rate Limit  | 通过插件进行限流  | 支持基于配置的限流,只支持基于源IP的限流  | |
ACL  | 给予插件实现四层的ACL  | 给予源/目的地址实现ACL  | |
Connection draining  | 支持hot reload,并且通过share memory实现connection draining功能  | Plush版本才支持  | 支持热启动,但是不保证丢弃链接  | 
Envoy提供极高吞吐量和低尾部延迟差异,而CPU和RAM消耗相对减少。Envoy在L4和L7都提供了丰富的可查吧过滤器能力,使用户可以轻轻松松添加开源版本中的功能Envoy提供了一组可以通过控制平面实现的管理API,如果控制平面所有的API则可以使用通用的配置在基础架构上运行Envoy,因为它从来不许要重新启动,这样使得Envoy极大的降低了整体运维的复杂性.Envoy线程模式
Envoy采用单进程多线程模式 Envoy配置的worker数量与Envoy所在的硬件线程数一致XDS-Envoy的发现机制
Endpoint Discovery Service (EDS): 这是v1 SDSAPI的替代品,此外,gRPC的双向流性质将允许负载/健康信息报告回管理服务器,未将来的全局负载均衡开机大门。
 Cluster Discovery Service (CDS): 跟v1没有实质性变化
 Route Discovery Service (RDS): 没有实质变化
 Listener Discovery Service (LDS): 和v1的唯一主要变化是:现在允许监听器定义多个并发过滤栈,这些过滤可以基于监听器路由规则(例如 SNI,源地址/目的地址)来进行选择
 Secret Discovery Service (SDS):一个专用API来传递TLS密钥材料。这将解耦通过LDS/CDS发送监听器,集群配置通过专用的密钥管理系统来发送。
 Health Discovery Service (HDS):该API将允许Envoy成为分布式健康检查网络的成员,中央健康检查服务可以使用一组Envoy作为健康检查终点,并将状态报告回来。
 Aggregated Discovery Service (ADS): 总的来说,Envoy的设计是最终一致的。这意味着默认情况下,每个管理API都并发运行,并且不会相互交互。一次一个管理服务器处理单个Envoy的所有更新都是有益的。此API允许通过单个管理服务器的单个gRPC双向流对所有其他API进行编组。