在本地环境启动dubbo服务的项目,遇到一个问题,就是项目启动后,本地的dubbo服务会注册到测试环境的zookeeper、nacos上,但是注册的ip地址是只有自己电脑能访问的,就会导致测试环境拿到了我本地的ip地址,但是连接不上,但是我们想调用测试环境的dubbo服务,又不想自己本地的dubbo服务注册到注册中心。
处理方案:加上dubbo.registry.register=false即可
1、背景:我们的dubbo注册中心是集群,有多个,有zk和nacos作为dubbo的注册中心
spring.dubbo.registry.address = nacos://192.168.220.53:8848;nacos://192.168.220.54:8848;nacos://192.168.220.55:8848|zookeeper://192.168.220.15:2181?backup=192.168.220.15:2182,192.168.220.15:2183
2、在dubbo-admin和nacos的控制台可以看到本地注册的ip
3、处理方案
点击IDEA的Edit Configurations,在VM options里面加上
备注
VM option :启动时的参数配置,设置启动参数的意义是当启动程序时,程序会优先读取idea的配置参数
3.1、当然我们可以直接application.properties里加上dubbo.registry.register=false,也一样
3.2、但是在VM options设置的参数会覆盖application.properties或application.yaml上的同名参数,好处是不用修改配置文件,如果修改了applicaion.properties在提交代码时候不要提交这行配置
3.3、-D"name"=“value” 的-D是指自定义参数
3.4、Program agruments :作为main方法的args参数传入
4、重新启动项目验证
重启后可以看到dubbo-admin、nacos上已经没有本地的ip的服务提供者了,但是本地的项目还是可以调用测试环境的dubbo服务