"请问dubbo-go 作为客户端调用java的dubbo接口,发生这个错误:dubbo-getty@v1.4.9-0.20221022181821-4dc6252ce98c/session.go:606 {client:TCP_CLIENT:4:192.168.59.170:65188<->192.168.44.148:30201}, [session.handleTCPPackage] = len{593707}, error:pkgLen 593707 > session max message len 102400
会是什么原因?貌似是报文太长了,在哪里可以设置长度限制?
加了这个,似乎好了。就不知道这个数值的单位是什么?B还是KB?
还有个问题,Metrics已经关闭了,如图所示,还是报监控的警告:2023-07-13T11:29:24.043+0800 WARN prometheus/reporter.go:425 new prometheus reporter with error = listen tcp :9090: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted."
该错误表明 Dubbo-Go 客户端调用 Java 的 Dubbo 接口时,收到的响应报文长度超过了默认的最大限制。默认情况下,Dubbo-Go 的消息长度限制为 102400 字节。
要解决这个问题,您可以在 Dubbo-Go 客户端代码中进行以下设置:
github.com/apache/dubbo-go/common/constant
包,以获取常量定义。constant.SetMaxMessageSize(size)
方法来设置最大消息长度。例如,constant.SetMaxMessageSize(1024 * 1024)
将将最大消息长度设置为 1MB。这样,您就可以增加最大消息长度限制,确保能够处理较长的响应报文。
请注意,在进行此类更改之前,请确保理解和评估对系统性能和资源消耗的影响。根据实际需求,选择合适的最大消息长度,并确保服务器端也能处理相应长度的报文。
这个需要等社区最近发版,把 fix PR 合并到 release 分支后就修复了。此回答整理至钉群“dubbogo社区2”。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。