Dubbo 指定调用固定ip+port dubbo调用指定服务 dubbo调用不随机 dubbo自定义调用服务 dubbo点对点通信 dubbo指定ip

1. 在写分布式im时nami-im: 分布式im, 集群 zookeeper netty kafka nacos rpc主要为gate(长连接服务) logic (业务) lsb (负载均衡)store(存储) - Gitee.com,需要指定某一长连接服务调用,其他博客得都调不通,写的有问题。要不就是通过xml进行配置,本文主要是以代码形式,调用前 配置ip, port 进行rpc方法调用,方便后来者使用

2. dubbo官网的指定调用代码示例:

动态指定 IP 调用 | Apache Dubbo

如不能访问网址,可看下图,如图所示:

 

 

   tip: 如果不能访问官网,且想复制图中代码;复制图片==>打开微信==>打开图片(也可能需要发送) ==> 打开图片,复制即可

a. pom 添加依赖

    a.1 : 如果是dubbo3  则引用如下jar包

<dependency>
  <groupId>org.apache.dubbo.extensions</groupId>
  <artifactId>dubbo-cluster-specify-address-dubbo3</artifactId>
  <version>1.0.0</version>
</dependency>

   dubbo2:

<dependency>
  <groupId>org.apache.dubbo.extensions</groupId>
  <artifactId>dubbo-cluster-specify-address-dubbo2</artifactId>
  <version>1.0.0</version>
</dependency>

b. 代码

# 调用配置类 <> 内写入接口类
ReferenceConfig<你的调用类> referenceConfig = new ReferenceConfig<Demo>();
# 可以配置 调用失败的重试次数
referenceConfig.setRetries(2);

# 官方没有,但是我测试的时候,如果不配置一遍, 会出错
referenceConfig.setInterface(Demo.class)
# 等等其他配置
#....

referenceConfig.setInterface(Demo.class);
Demo demo = referenceConfig.get();

// 写入ip, dubbo端口号
UserSpecifiedAddressUtil.setAddress(new Address(ip, port, true));
# 调用方法,并传参
demo.test(param);

c . 图中一个问题是ip, port 怎么获取

     c1.查看dubbo源码拿到获取ip方法:

                                  NetUtils.getLocalHost() 

        上述是dubbo 的源码方法即获取ip,只要使用dubbo ,直接调用就能调用出来,注意这个是dubbo的源码方法,引用包结构别错了

      c2.端口的话会出现两种情况:

                                                  1. 配置文件是随机端口

                                                  2.是固定dubbo protocol port

            如果是随机端口,则可能需要从nacos配置中心,写代码获取

                

 

           我选用了固定dubbo 端口 ,比较简单,通过@Value注解 获取生产者dubbo端口

 

           如果是随机端口,启动之后,dubbo有没有方法可以获取到随机端口号,或者通过代码从nacos获取随机的端口号,欢迎沟通,讨论下这个问题

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值