工作中需要调用dubbo接口,网上资料很多,但胡乱不堪,特别总结一下
由于接口已经写好,所有我们的角色是消费者
一、依赖包配置
<!--dubbo依赖--> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo</artifactId> <version>2.7.0</version> </dependency> <!--依赖服务的jar包:这个需要生产端提供-->
二、生产者的地址
配置文件很简单,application.propterties
spring.profiles.active=dev spring.main.allow-bean-definition-overriding=true #消费端的name,协议和端口一般都是写死的 dubbo.application.name=bigscreen-wuwei dubbo.protocol.name=dubbo dubbo.protocol.port=20880 #生产端的地址,这个需要从zk获取,zk算是注册中心 dubbo.registry.address=zookeeper://ip:port
三、service中的调用
@Service public class ServiceImpl implements XXXService{ //本地service一般要用@AutoWired,dubbo的要用@Reference,就这点差别 @Reference private GisOuterService gisOuterService; }
四、多注册中心
考虑一种特殊的情况,需要对接多个数据注册中心
配置文件就要改一下application.properties
dubbo.registries.gis.address=zookeeper://ip1:2181 dubbo.registries.patrol.address=zookeeper://ip2:2182
在具体调用的时候就需要指定一下
@Reference(registry = "gis") private GisOuterService gisOuterService;