这里nacos2.X用SLB的话,要用7层代理吗。现在发现有些应用刚启动就不停报错?Connection closed after GOAWAY. HTTP/2 error code: ENHANCE_YOUR_CALM (Bandwidth exhausted), debug data: too_many_pings但是nacos的keepalive看日志已经backoff了Increased keepalive time nanos to 720,000,000,000
nacos server 2.0.4
nacos client 2.2.4
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您描述的问题,Nacos 2.X 使用 SLB(Server Load Balancer)时出现以下现象: 1. HTTP/2 错误:Connection closed after GOAWAY. HTTP/2 error code: ENHANCE_YOUR_CALM (Bandwidth exhausted)
。 2. 调试信息:too_many_pings
。 3. 日志显示:Nacos 的 keepalive 已经触发了退避机制(backoff),将 keepalive 时间增加到 720,000,000,000
纳秒。
结合知识库中的资料,可以推测问题可能与 SLB 的 HTTP/2 配置或健康检查机制有关。以下是详细分析和解决方案。
Nacos 2.X 支持基于 gRPC 的通信协议,而 gRPC 默认使用 HTTP/2 协议。因此,如果通过 SLB 负载均衡 Nacos 服务,建议使用 七层代理(HTTP/HTTPS),因为七层代理支持 HTTP/2 和 WebSocket 原生协议。
从错误信息来看,ENHANCE_YOUR_CALM
是 HTTP/2 协议中的一种流量控制机制,通常由服务器端检测到客户端发送过多的 PING 帧后触发。这可能是由于 SLB 的 HTTP/2 实现与 Nacos 客户端之间的兼容性问题导致的。
ENHANCE_YOUR_CALM
。SLB 的健康检查机制可能导致 Nacos 服务在启动初期频繁报错。例如,健康检查可能在服务尚未完全初始化时发送请求,导致连接异常。
/nacos/v1/console/health
),而不是默认站点或其他可能返回错误的路径。您当前使用的 Nacos Server 版本为 2.0.4,Nacos Client 版本为 2.2.4。建议升级到最新版本,以修复已知的兼容性问题和性能优化。
通过上述步骤,您可以逐步排查并解决 Nacos 2.X 在 SLB 环境下的问题。重点包括: 1. 切换到七层代理并启用 HTTP/2 支持。 2. 关闭 HTTP/2 或调整相关参数以避免 ENHANCE_YOUR_CALM
错误。 3. 优化 SLB 的健康检查配置。 4. 升级 Nacos 至最新版本。
如果问题仍未解决,建议联系阿里云技术支持获取进一步帮助。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。