1. 程式人生 > >Springboot1.5.10整合dubbo2.6.2

Springboot1.5.10整合dubbo2.6.2

最近專案中要使用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
@EnableDubboConfig
public 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 implements
UserService { @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專案就搭建成功了。