KEMS的网关模块基于KOCA接入网关实现,并在此基础上做二次扩展。

有关KOCA接入网关的使用请参考KOCA接入网关

扩展内容

Filter实现

  • PreForwardIPFilter,记录原始clientIPheader:x-kems-client-ip
  • PreRequestCredentialFilter,对服务调用凭据进行设置header:x-access-credentials
  • PreRequestFilter,对Post请求的RequestBody进行传递。
  • WrapperResponseFilter,对Post请求进行字段过滤与对答应进行增强。
  • SignFilter, 对请求进行签名校验 (配置默认为关闭状态)

sentinel集成

  • 新增连接Sentinel Dashboard进行限流熔断(需先启动Sentinel Dashboard,重启后限流配置会失效),部分属性如下:

    ① resourceMode:规则是针对 API Gateway 的 route(RESOURCE_MODE_ROUTE_ID)还是用户在 Sentinel 中定义的 API 分组(RESOURCE_MODE_CUSTOM_API_NAME),默认是 route。

    ② resource:资源名称,可以是网关中的 route 名称或者用户自定义的 API 分组名称。

    ③ grade:限流指标维度,同限流规则的 grade 字段

    ④ count:限流阈值

    ⑤ intervalSec:统计时间窗口,单位是秒,默认是 1 秒

    ⑥ controlBehavior:流量整形的控制效果,目前支持快速失败和匀速排队两种模式,默认是快速失败。

    ⑦ burst:应对突发请求时额外允许的请求数目。

    ⑧ maxQueueingTimeoutMs:匀速排队模式下的最长排队时间,单位是毫秒,仅在匀速排队模式下生效。

    ⑨ paramItem:参数限流配置。若不提供,则代表不针对参数进行限流,该网关规则将会被转换成普通流控规则;否则会转换成热点规则。

  • 服务流控:如Route ID = ReactiveCompositeDiscoveryClient_MODULE-SYSTEM,此时会针对整个MODULE-SYSTEM模块的请求进行规定好的限流。

  • API流控:精确模式(指对URL的路径完全匹配时进行限流,如:module-system/user/list)、前缀模式(指对URL的路径完全匹配时进行限流,如:module-system/app/**)、正则模式。

swagger聚合

集成swagger-bootstrap-ui,可以在网关上通过/doc.html访问到模块下的api信息。

搭配插件

Copyright © 2017-2023 深圳金证引擎科技有限公司 all right reserved,powered by Gitbook该文件最后修订时间: 2023-09-01 14:01:36

results matching ""

    No results matching ""