Springboot1.5.10整合dubbo2.6.2
阿新 • • 發佈:2019-01-06
最近專案中要使用dubbo進行分散式部署,這裡就介紹一下實際工作中的一些操作。
1.安裝zookeeper
在官網下載zookeeper來安裝,我本機安裝的zookeeper-3.4.6Windows版本。雙擊bin/zkServer.cmd啟動。
2.新增依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>1.5.10.RELEASE</version> </dependency> <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>0.1.1</version> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.9</version> </dependency> <dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.10</version> </dependency>
3.修改application.properties
在application.properties中新增dubbo的屬性:
dubbo.application.name=user-provider dubbo.scan.basePackages=com.test.example dubbo.registry.address=zookeeper://127.0.0.1:2181 dubbo.protocol.port=20890
指定host和port,名稱和包名。
4.修改Application
在啟動類中增加註解@EnableDubboConfig
@SpringBootApplication @ServletComponentScan @EnableDubboConfigpublic class WmUserServiceProviderApplication { public static void main(String[] args) { SpringApplication.run(WmUserServiceProviderApplication.class, args); } }
5.增加提供方介面
@Service(interfaceClass = com.test.example.UserService.class, timeout = 100000) @Component public class UserServiceImpl implementsUserService { @Autowired private UserRepository userRepository; }
注意這裡的註解@Service不能用spring的,應該是com.alibaba.dubbo.config.annotation.Service,裡面有很多屬性,需要指定介面類interfaceClass ,客戶端呼叫預設超時是1秒,如果需要可以設定timeout,其他屬性可自行設定。
啟動WmUserServiceProviderApplication,service提供方就OK了。
6.修改客戶端工程
dubbo.application.name=consumer dubbo.registry.address=zookeeper://127.0.0.1:2181
pom新增依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>1.5.10.RELEASE</version> </dependency> <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>0.1.1</version> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.9</version> </dependency> <dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.10</version> </dependency>
7.客戶端使用service
@Reference private UserService userService;
使用阿里的dubbo註解引用服務端的介面,com.alibaba.dubbo.config.annotation.Reference。
8.啟動
客戶端啟動類也需要增加@EnableDubboConfig註解,啟動成功後可以使用伺服器的service了。
這樣一個最簡單的springboot+dubbo的rpc專案就搭建成功了。