在本地环境启动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里面加上

-Ddubbo.registry.register=false;

在这里插入图片描述
在这里插入图片描述

备注

  1. VM option :启动时的参数配置,设置启动参数的意义是当启动程序时,程序会优先读取idea的配置参数
  2. 当然我们可以直接application.properties里加上dubbo.registry.register=false,也一样
    但是在VM options设置的参数会覆盖application.properties或application.yaml上的同名参数,好处是不用修改配置文件,如果修改了applicaion.properties在提交代码时候不要提交这行配置
  3. -D"name"=“value” 的-D是指自定义参数
  4. Program agruments :作为main方法的args参数传入
  1. 重新启动项目验证
    重启后可以看到dubbo-admin、nacos上已经没有本地的ip的服务提供者了,但是本地的项目还是可以调用测试环境的dubbo服务
    在这里插入图片描述
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐