由于网关属于公共服务,且需要应对后续持续的量级增长,所以路由数量对于性能的影响不可忽视。
由下图可见,整体CPU的时间分布比较正常,3部分时间都比较平均,且均为网络和React等组件耗时,所以整体是相对健康的状态。
由下图可见,明显第1部分的CPU使用率在整个占比中呈现比例不正常的特性,所以性能的主要问题来自第1部分。
每个请求会对Route链进行遍历,时间复杂度为O(n),随着网关不断使用,Route也会不断增加。所以性能也会不断下降。
通过以下两个方面扩展网关功能
可以看到,同样是1000个路由,QPS和响应时间均已恢复正常。
HostRoutePredicateFactory调用时长
此处 org/springframework/cloud/gateway/handler/predicate/HostRoutePredicateFactory$1.test的使用量已经非常小了,程序回归正常
参考如下代码:
spring-cloud-gateway-domain-routers
如果解决了各位大神的问题,欢迎在Github上点一个Star,Github下还有其他开源框架,感兴趣的同学欢迎使用、提出问题
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。