工作中需要調用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;
五、啟動類
在啟動類上加上@EnableDubbo啟動dubbo服務