dubbo整合springboot

目前的dubbo已支持和springboot集成,通過springboot容器來實現。藉此瞭解一下基於springboot容器啓動的dubbo的配置及使用。

1. 準備工作

1.1. 首先創建一個maven父項目

dubbospringbootdemo
創建過程參考:https://blog.csdn.net/u014429653/article/details/97181403
創建完成後可刪除src文件夾,父項目用不到這個文件夾;

1.2接着創建dubbospringbootapi、dubbospringbootprovider、dubbospringbootconsumer

在父工程上右鍵創建三個子工程:
dubbospringbootapi是一個maven工程,另外兩個是springboot工程,springboot工程創建參考:
https://blog.csdn.net/u014429653/article/details/84726466
在這裏插入圖片描述
在父工程中pom.xml加入
在這裏插入圖片描述
完整工程目錄:
在這裏插入圖片描述

2、配置過程

2.1 在dubbospringbootapi工程中加入接口

在這裏插入圖片描述

2.2 配置dubbospringbootprovider

在pom.xml中引入jar包

    <!-- 引入公共API,以實現其接口 -->
    <dependency>
        <groupId>com.dubbo.test</groupId>
        <artifactId>dubbospringbootapi</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>

    <!-- 引入spring-boot-starter以及dubbo和curator的依賴 -->
    <dependency>
        <groupId>com.alibaba.boot</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>0.2.0</version>
    </dependency>

在這裏插入圖片描述
創建接口實現類
在這裏插入圖片描述
這裏用註解@Service;所屬包import com.alibaba.dubbo.config.annotation.Service;
目的是把該接口的實現暴露出去
在application.properties中配置註冊中心:

#避免和監控中心端口衝突,設爲8081端口訪問
server.port=8081

#當前服務/應用的名字
dubbo.application.name=user-service-provider

#註冊中心的協議和地址
dubbo.registry.protocol=zookeeper
dubbo.registry.address=127.0.0.1:2181

#通信規則(通信協議和接口)
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880

#連接監控中心
dubbo.monitor.protocol=registry
#開啓包掃描,可替代 @EnableDubbo 註解
##dubbo.scan.base-packages=com.dubbo.test.dubbospringbootprovider

在這裏插入圖片描述
springboot容器根據配置啓動服務提供方,這裏需要添加 @EnableDubbo 註解
在這裏插入圖片描述

2.2 配置dubbospringbootconsumer

同2.1節
在pom.xml中引入jar包

    <!-- 引入公共API,以實現其接口 -->
    <dependency>
        <groupId>com.dubbo.test</groupId>
        <artifactId>dubbospringbootapi</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>

    <!-- 引入spring-boot-starter以及dubbo和curator的依賴 -->
    <dependency>
        <groupId>com.alibaba.boot</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>0.2.0</version>
    </dependency>

創建controller和service和impl中的類
dubbo提供了@Reference註解,可替換@Autowired註解,用於引入遠程服務
import com.alibaba.dubbo.config.annotation.Reference;
在這裏插入圖片描述
配置文件application.properties:

#避免和監控中心端口衝突,設爲8081端口訪問
server.port=8082  

dubbo.application.name=order-service-consumer
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.monitor.protocol=registry

#開啓包掃描,可替代 @EnableDubbo 註解
##dubbo.scan.base-packages=com.dubbo.test.dubbospringbootconsumer

啓動類同樣加上@EnableDubbo註解
在這裏插入圖片描述
爲查看調用是否成功,增加控制層用於訪問

package com.dubbo.test.dubbospringbootconsumer.controller;

import com.dubbo.test.dubbospringbootconsumer.service.OrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping(value = "/hello")
public class HelloController {

    @Autowired
    private OrderService orderService;

    @ResponseBody
    @RequestMapping(value = "/say", method = RequestMethod.GET)
    public String orderShow(String name){
        String value = orderService.orderShow(name);
        return value;

    }
}

3、啓動調用

啓動服務方
在這裏插入圖片描述
啓動消費方
在這裏插入圖片描述
在瀏覽器訪問http://localhost:8082/hello/say?name=taobao
在這裏插入圖片描述

附:springboot也允許引用xml文件配置,方法是在啓動類中加入如下註解

//@EnableDubbo
//引入配置信息
@ImportResource(locations="provider.xml")
@SpringBootApplication
public class UserServiceProviderApplication {
//略
}

在這裏插入圖片描述
在這裏插入圖片描述

4、查看管理平臺dubbo-admin和監控平臺dubbo-monitor

在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章