跳到主要内容

微服务网关

微服务网关支持路由、限流、负载均衡等功能。

前提条件

已安装微服务网关,参考管理员指南-共享微服务框架

设置网关服务代理

  • 共享微服务框架:管理员进入[管理工作台/微服务配置/微服务框架管理],选择目标集群,系统租户,为微服务网关服务(spring-cloud-gateway)设置外网地址。
  • 独享微服务框架:管理员进入[管理工作台/微服务配置/微服务框架管理],选择目标集群,目标租户,为微服务网关服务(spring-cloud-gateway)设置外网地址。

网关路由

路由将请求通过网关映射到具体的服务端,无需考虑服务地址变更问题,根据请求的来源、目标服务、敏感Header将服务访问请求分发到不同版本的微服务实例中。 微服务网关支持权重路由、设置路由转发匹配条件、超时设置、失败重试次数设置等。 若没有服务网关,多个服务提供给前端调用地址管理错综复杂,增加了客户端的复杂性,认证也相对麻烦,每个服务都需要编写相同的认证。

操作步骤如下:

  1. 进入[服务治理/微服务框架/服务管控]页面,找到目标服务,进入其详情页面,点击路由规则页签。
  2. 单击<添加路由>按钮,参数介绍:
  • 路由名称:可由3~50位字母、数字、中划线组成,以字母开头,字母或者数字结尾。
  • 路由路径:主要补充访问路径中的http://网关地址:端口/路由路径路由路径部分。
    • 精确匹配(/demo):路径必须精确匹配/demo。
    • 单级目录(/demo/*):路由路径可匹配单级目录。
    • 多级目录(/demo/**):路由路径可匹配多级目录。
  • 目标服务:可添加一个或多个服务;多个服务时,设置各个服务的权重百分比。当某路由规则中有多个服务时,在[运维管理/微服务策略统计]中统计时,此路由规则属于主服务。
  • 匹配规则:设置路由过滤条件,可以不设置、也可设置多条。
    • Cookie:基于key-value,value支持完全匹配、正则匹配的方式匹配路由。
    • Header:基于key-value,value支持完全匹配、正则匹配的方式匹配路由。
    • Query:基于key-value,value支持完全匹配、正则匹配的方式匹配路由。
    • IP:基于IP地址匹配路由,支持用逗号分隔,例如192.168.0.1,192.168.0.2
    • Host:基于host域名进行路由匹配,支持固定匹配,通配符匹配。
    • Method:支持路由获取方式进行匹配,支持方式有GETHEADPOSTPUTPATCHDELETEOPTIONS等方式,支持多选。
    • datetime:支持路由请求时间段的选择,支持before、between、after,需单选,时间支持年月日时分秒选择。
  • 去掉路径前缀:开启后表示转发前去掉路径中前缀。
  • 失败重试机制:开启后表示开启失败重试机制,支持设置重试次数。失败包括超时、请求5xx。
  • 超时设置:设置路由请求时长,时长取值是1~600000ms。超时后也会触发重试。
  • 敏感Header:若设置敏感Header,将不向下游服务传递设置的敏感Header;若未设置任何敏感Header,则向下游服务传递所有Header。
    • 选择“全局敏感Header”:表示使用全局统一配置
    • 选择“自定义敏感Header”: 可为微服务添加特定的敏感Header
  1. 填写好路由配置信息后,点击<确认>按钮,路由添加成功,新添加的路由规则后,点击确定按钮即可添加完成。
  2. 支持启用、停用、编辑、删除路由规则

网关负载均衡

操作步骤如下:

  1. 进入[服务治理/微服务框架/服务管控]页面
  2. 点击服务名称链接,进入服务详情页面,配置负载均衡策略,支持随机、轮询。

网关限流

微服务网关是每个请求的必经入口,非常适合做一些API限流,防止网络攻击,限制客户端的请求速率能在一定程度上抵御攻击,降低损失。当限流对象对当前服务实例的每秒请求数量超过设定的值时,当前服务实例将不在接受该对象的请求。从而防止过载崩溃,防止瞬时流量过大造成系统崩溃或服务不可用。 网关限流类型主要包括url、origin、user三种:

  • url类型的限流就是通过请求路径区分。
  • origin是通过客户端IP地址区分。
  • user是通过请求头的authorization字段(BasicAuth认证方式)进行区分。
  • 也可以多个限流类型结合使用。

操作步骤如下:

  1. 进入[服务治理/微服务框架/服务管控]页面,选择目标服务进入其详情页面。
  2. 单击“限流规则”-“网关限流”页签,点击添加限流规则按钮
    • 可选择限流类型:url、origin、user
    • 限流阈值:窗口时间内请求高于阈值次数时将触发限流,表示当前服务将不再接受请求
    • 窗口:单位秒,该时间内的请求高于限流阈值,将触发限流
  3. 填写限流规则信息后,点击<确定>按钮,规则添加成功,新添加的规则会展现在规则列表中。
  4. 可根据需要编辑、启用/停用、删除限流规则
备注
  • 目标服务同一时刻最多只能存在一条启用状态的限流规则