我正在使用SpringCloudGatewayHoxton。M1发布以实现API网关。我可以看到以下格式的日志-
[2019-11-13 18:33:09,432] [448877242] [reactor-http-epoll-5] [DEBUG] [r.n.r.PooledConnectionProvider] - [id: 0xfc0b1eb2, L:/x.x.x.x:42538 - R:xxxx4076.x.x.com/x.x.x.x:5001] Channel connected, now 1 active connections and 0 inactive connections
[2019-11-13 18:33:09,679] [448877489] [reactor-http-epoll-5] [DEBUG] [r.n.r.PooledConnectionProvider] - [id: 0xfc0b1eb2, L:/x.x.x.x:42538 - R:xxxx4076.x.x.com/x.x.x.x:5001] onStateChange(POST{uri=/gateway/api/public/process, connection=PooledConnection{channel=[id: 0xfc0b1eb2, L:/x.x.x.x:42538 - R:xxxxx4076.x.x.com/x.x.x.x:5001]}}, [request_sent])
[2019-11-13 18:33:09,880] [448877690] [reactor-http-epoll-5] [DEBUG] [r.n.r.PooledConnectionProvider] - [id: 0xfc0b1eb2, L:/x.x.x.x:42538 - R:xxxx4076.x.x.com/x.x.x.x:5001] onStateChange(POST{uri=/gateway/api/public/process, connection=PooledConnection{channel=[id: 0xfc0b1eb2, L:/x.x.x.x:42538 - R:x.x.x.com/x.x.x.x:5001]}}, [response_received])
我也可以在下面的访问日志中看到-
x.x.x.x - - [13/Nov/2019:18:33:09 +0800] "POST /x/x/x HTTP/1.1" 200 14895 5556 455 ms
从这看来-
没有配置全局筛选器。此外,路由仅使用重写路径和添加请求头筛选器。下面是路线。它还使用redis的速率限制功能。
- id: xxxx
uri: http://xxxxx.xxx.xxx.com:5001
predicates:
- Path=/x/x/x
- Method=POST
filters:
- RewritePath=/x/x/x,/gateway/api/public/process
- AddRequestHeader=xxxxx,yyyyy
- AddRequestHeader=appid,zzzzz
- SecureHeaders
- name: RequestRateLimiter
args:
key-resolver: "#{@userRemoteAddressResolver}"
redis-rate-limiter.replenishRate: 10
redis-rate-limiter.burstCapacity: 20
当下游只需要200毫秒时,SpringCloudGateway需要的255毫秒看起来有点高。
我已经为网关应用程序提供了足够的堆内存,在gc分析中,我没有发现任何内存问题。
对如何优化网关性能有何建议?
老实说,我也有同样的问题,因为你试图改善网关的可怕性能的开箱即用。我建议首先在pom或gradle文件中包含Blockhound代理依赖项。
这是我的gradle依赖项编译组:'io。项目Reactor。工具,名称:“blockhound”,版本:“1.0.2”。发布“
”。然后在Spring Boot应用程序的主界面中,您可以调用Blockhound。安装()
。这将监视网关中任何位置的阻塞代码。
接下来我要添加的是一个jvm选项-Dreactor。内蒂。ioWorkerCount=50
。这将迫使netty使用超过默认数量的事件循环线程。空闲时间的其他选项也可以更改。但在我看来,这些改变是行不通的。我认为SpringGateway将大部分过滤器工作负载放在了事件循环线程上,这就是为什么perf现在和将来总是不好的原因。
我有一个带有一些endpoint的anexo API,比如: 如何将Spring Cloud Gateway与这些endpoint一起使用?
我为所有传入请求创建了全局路由,并使用AbstracTerrorWebExceptionHandler。 我的application.yml 运行应用程序时的日志: 谢谢你的帮助。
我使用的是堆栈下 SpringCloudGatewayHoxton发行版,Java1.8,Linux操作系统 我看到下面的异常在重启后消失,但在一段时间后再次出现。我没有为直接内存做任何显式设置。下面是使用的JVM参数- 有人能告诉我错误的原因吗?
我还需要NGINX来服务静态内容,如JS等,并向后端反向代理请求,还是可以用Spring Cloud Gateway来完成?Spring docs有以下图像: 我没有发现关于如何将静态内容返回给客户端的描述,这是否意味着它被认为是糟糕的做法,我需要额外的反向代理步骤来增加它的延迟?如果没有,我可以在哪里找到更多关于如何使用Spring Cloud Gateway实现这一点的信息,尤其是如果我要使用
当我使用spring cloud gateway集成spring cloud sleuth时,我发现性能比单独使用spring cloud gateway慢得多。是否有优化方案? 机器配置:6芯,16g Spring云网关:5331.9 tps Spring云网关Spring云侦探:4119.47 tps “Spring云网关”比“Spring云网关Spring云侦探”慢约1000-2000tps
我一直在读关于spring cloud gateway在我的微服务架构中实现API网关的文章。我需要阻止某些URL我一直在使用一些内部操作。但是,我已经像在Zuul中一样在gateway中使用了IgnoredServices和IgnoredPatterns,但是在Spring cloud gateway链接中没有这样的东西。我的内部API以/internal/{something}开头。 同样,我