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包

org.apache.dubbo.extensions

dubbo-cluster-specify-address-dubbo3

1.0.0

   dubbo2:

org.apache.dubbo.extensions

dubbo-cluster-specify-address-dubbo2

1.0.0

b. 代码:

# 调用配置类 <> 内写入接口类

ReferenceConfig<你的调用类> referenceConfig = new ReferenceConfig();

# 可以配置 调用失败的重试次数

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获取随机的端口号,欢迎沟通,讨论下这个问题

相关文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: