温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何动态调用dubbo编程式

发布时间:2021-06-24 16:08:41 来源:亿速云 阅读:267 作者:Leah 栏目:云计算

这篇文章给大家介绍如何动态调用dubbo编程式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

定一个接口 

public interface ToDoService {

    String test(String s);}

两个实现

@Service(group = "test1")public class ToDoService1 implements ToDoService {@Override    public String test(String s) {return "1" + s;    }
}
@Service(group = "test2")public class ToDoService2 implements ToDoService {@Override    public String test(String s) {return "2" + s;    }
}

这里通过 group来区分两个实现类

调用方:

/** * 执行ToDoService * * @param group * @return */public String executeToDoService(String group) {
    ReferenceConfig<ToDoService> referenceConfig = new ReferenceConfig<>();    referenceConfig.setInterface(ToDoService.class);    referenceConfig.setGroup(group);    ReferenceConfigCache cache = ReferenceConfigCache.getCache();    ToDoService toDoService1 = cache.get(referenceConfig);    try {return toDoService1.test("哈哈");    } catch (Exception ex) {return "";    }
}

这里需要注意的是,ReferenceCofing 官方文档里说很重,需要缓存,言外之意就是不要重复new ReferenceCofing 实例,这样会不断的会注册成为消费者 Consumer 。

但是官方提供了 ReferenceConfigCache ,所以不要自己写个什么静态的 hashMap来缓存,用dubbo开发者提供的工具来获取 我们需要调用的实例

ReferenceConfigCache cache = ReferenceConfigCache.getCache();  ToDoService toDoService1 = cache.get(referenceConfig);

关于如何动态调用dubbo编程式就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI