Apache Dubbo中dubbo-go 作为客户端并发调用时,会出现prometheus/reporter.go:425 new prometheus reporter with error = listen tcp :9090: bind: Only one usage of each socket address,这个是什么原因?哪里可以关闭掉这个?我不用这个可以关闭吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
该报错出现是因为 Apache Dubbo 使用了 Prometheus 监控组件,并尝试在默认的 9090 端口上启动 Prometheus Exporter,但该端口已被其他进程或服务占用。
要解决此问题,有以下几种方法:
修改 Prometheus Exporter 的监听端口:可以通过修改 Dubbo 应用的配置文件(dubbo.properties 或 application.yml)来更改 Prometheus Exporter 的监听端口,将其设置为未被占用的端口。您可以在配置文件中搜索 prometheus.port
或类似的配置项,将其值改为可用的端口号。
关闭 Prometheus 监控组件:如果您不需要使用 Prometheus 监控功能,可以在 Dubbo 配置文件中禁用它,以避免该错误。您可以在配置文件中找到 monitor: 'prometheus'
这样的配置项,将其注释或修改为其他监控方式(如 'simple')。
检查端口占用情况:如果仍然遇到端口冲突问题,您可以通过检查系统中正在运行的进程和服务以确定哪个进程在占用 9090 端口。然后可以关闭该进程或者将 Dubbo 使用的 Prometheus Exporter 迁移到其他端口。
请注意,具体的配置项名称可能会根据您使用的 Dubbo 版本和配置方式而有所不同。建议参考 Dubbo 官方文档或社区论坛,以获取更具体和针对性的指导。
配置文件中 metrics.port 是不是没有指定啊?默认是 9090,可以改成其他端口。需要在 yaml 配置文件中手动加上 默认值 false。此回答整理至钉群“dubbogo社区2”。
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。