1、正常dubbo调用流程
引入dubbo依赖
引入他人提供的clinet依赖包;
配置相同的注册中心,使用@Reference注解注入对应的service接口(注意是Reference是dubbo包下的,不是spring那个)
2、如果想在不引用他人jar包的情况下如何调用呢?
dubbo泛化调用-dubbo原生支持的优雅方法
使用场景:
消费者不希望引入生产者提供的clinet依赖;
例如:消费者是一个基础服务,需要调用很多生产者的dubbo方法,那他就要引入很多的jar包;
消费者不使用java语言,而是使用其他的语言(例如:Python);
如何使用:
1.需要知道对方方法的全路径名称(interfaceName)
2.如果对方的dubbo有指定的版本号(version)和组(group)要指定一下,不然有很大可能会调用不通
3.要知道对方的注册中心地址和连接方式(如果是在同一个zk注册中心就更好了)
1.获取泛化对象
private GenericService getGenericService(String interfaceName, String version, String group) {
ReferenceConfig<GenericService> reference = new ReferenceConfig<GenericService>();
// set application
ApplicationConfig applicationConfig = new Ap