Nginx为目前比较流行的高性能开源服务器,Ingress则为实际的K8s流量入口。Ingress/Nginx防护作为应用侧的上游,可以提前对业务流量做控制,从而有效地保证下游服务不会因流量激增而导致系统瘫痪。
功能特性
Ingress/Nginx防护提供的主要功能如下:
功能 | 描述 |
请求分组管理 | 支持请求自定义分组。用户可以以该分组为粒度对其进行流量控制,并在AHAS控制台对其进行全方位的监控。请求分组通过域名加路径组合的方式定义,支持精确、前后缀、正则三种匹配模式,同时路径支持rewrite开关。 |
实时监控 | Ingress/Nginx防护提供实时秒级监控能力,您接入Ingress/Nginx防护后,可以通过快速访问AHAS控制台,查看实时的接口以及自定义请求分组的QPS、RT等信息。 |
集群流控 | 通过设定集群流量总阈值,实现以服务或API粒度的控制流量的阈值,因此您无需关注集群机器的物理差异、负载均衡等因素。 |
自定义流控行为 | 当流量被Ingress/Nginx防护阻挡时,用户可以在前端配置自定义返回码和返回文本内容。 |
应用场景
秒杀购物
接入Ingress/Nginx防护后,通过提前对自定义请求分组的流量限制,可以有效地保证系统在峰值时不会因流量激增而导致系统瘫痪。
慢调用阻塞
下游的服务一旦出现慢调用频繁,比如SQL查询、异常的第三方调用等,都会占用网关侧的系统资源,从而连累下游其它正常服务。Ingress/Nginx防护可以有效地限制慢调用的频次来保护整个系统不被过多的慢调用拖垮。
精细化流控
网关侧做为总流量的入口,业务请求杂乱并且难以归类。Ingress/Nginx防护提供了自定义请求分组的功能,通过域名加路径组合的方式,同时支持精确、前后缀、正则三种匹配模型,以便用户能够更好地定义请求分组,并进一步对其做流量控制。
业务防刷
通过指定请求参数,比如用户ID、客户端IP等,并设定一个阈值,可以有效地防止单属性流量过度频繁的访问网关侧服务,以保证业务的健壮性。
版本支持
使用Ingress/Nginx防护所需版本要求如下:
- 操作系统:支持主流Linux发行版本,包括CentOS、Ubuntu、Alpine等。
- Nginx版本:要求Nginx版本在1.10.3以上(不包括1.10.3)。若您当前使用的是低版本的Nginx,建议您升级后再使用。
- Nginx生态:支持主流的Nginx衍生产品,包括OpenRestry、Tengine、Kong、Apisix等。
接入方式
Ingress和Nginx如何接入流量防护的具体操作,请参见将Nginx接入流量防护和使用Ingress-sentinel实现流控。
文档内容是否对您有帮助?