Springboot整合dubbo(一):搭建一個springboot + dubbo的微服務

現在越來越多的公司開發項目中使用了springboot作爲搭建服務的框架,因爲springboot集成了一套完整項目所需要的基本的開發工具的jar包,無需再像之前開發一個spring項目中需要引入各種配置,只需要引入簡單的幾個配置就能達到項目的啓動,大大減少了開發週期,使開發越來越便捷,而dubbo是一款國內使用較多的SOA架構開發的中間件,其主要由三個部分組成:生產者,消費者,註冊中心。註冊中心一般使用的是zookeeper。於是我們從頭來捋一捋如何搭建一個springboot+dubbo項目。

首先,使用創建一個springboot項目,我這裏使用的是IDEA工具,如果是使用eclipse的同學,大家可以去網上找有很多的搭建springboot項目的博客。

第一步:選擇新建project或者module,在界面中選擇Spring Initilazr點擊next:

第二步:填上項目的基本信息點擊next:

第三步:選擇在你的項目中需要引入的相關依賴以及springboot的版本,這裏我選了2.0.6並勾選web便於測試(當然你可以根據你的需要勾選不同的依賴,很全基本上涵蓋了開發過程中所用到的所有插件)點擊next編輯器就會幫你自動將項目初始化並下載相關的jar包依賴:

進入項目後我們可以先看看項目結構:

其中DemoApplication是項目的啓動類,application.properties是配置文件,項目的一些相關的配置可以寫在裏面,springboot支持多種配置文件格式,目前比較常用的除了properties配置之外,比較流行的是yml格式的配置文件,這裏我就將application.properties文件改成application.yml爲配置文件格式,都ok了之後呢我們就可以啓動啓動類(啓動類帶有main方法可以直接啓動),項目就可以啓動了。

第四步:下載安裝zookeeper:https://zookeeper.apache.org/releases.html 

具體在windows上如何啓動的方法我也不詳細說明了,請參照:https://blog.csdn.net/xuchaovip/article/details/55549370(版權歸屬@澄海單挑狂

第五步:引入Springboot集成dubbo的依賴以及zookeeper客戶端依賴:

            <!-- 整合dubbo -->
            <dependency>
                <groupId>io.dubbo.springboot</groupId>
                <artifactId>spring-boot-starter-dubbo</artifactId>
                <version>1.0.0</version>
            </dependency>
            <!-- zookeeper客戶端 -->
             <dependency>
                <groupId>com.101tec</groupId>
                <artifactId>zkclient</artifactId>
                <version>0.7</version>
            </dependency>

 第六步:創建接口及接口實現類:

public interface TestService {

    void testDubbo();
}
import com.alibaba.dubbo.config.annotation.Service;
import com.springboot.dubbo.service.TestService;

@Service(version = "1.0.0",timeout = 3000)
public class TestServiceImpl implements TestService{

    @Override
    public void testDubbo() {

    }
}

添加@Service註解,切記註解不是用spring的service註解,是 com.alibaba.dubbo.config.annotation.Service,由阿里提供的dubbo的註解,配上版本號1.0.0說明向zookeeper註冊的是版本爲1.0.0的TestService接口,超時時長爲3000ms等信息。

第七步:添加配置:

server:
  port: 8080 #Tomcat端口
spring:
  dubbo:
    application:
      name: springboot-dubbo-demo #應用名
    registry:
      address: zookeeper://localhost #zookeeper地址
      port: 2181 #提供註冊的端口
    protocol:
      name: dubbo
      port: 20890 #dubbo服務暴露的端口
    scan: com.springboot.dubbo.service.impl #掃描的包名

 添加完畢後啓動項目,沒有異常的話,可以通過dubbo-admin查看接口情況:

這樣一個提供者服務就搭建好了。

第八步:搭建消費者服務:

項目創建步驟如上面步驟,引入提供者服務的依賴,需要使用maven install命令將提供者服務依賴安裝至本地,或者使用maven deploy命令提交至遠程服務器才能正常引入,否則會包依賴包找不到。

添加controller層代碼項目整體結構如圖:

TestController類中的代碼結構使用服務注入時使用dubbo的Reference註解: 

 @Reference(version = "1.0.0",timeout = 300)
    private TestService testService;
spring:
  dubbo:
    application:
      name: springboot-dubbo-demo
    registry:
      address: zookeeper://localhost
      port: 2181
    scan: com.springboot.dubbo.test.controller

 將配置文件掃描的包改成com.springboot.dubbo.test,然後啓動項目

 通過阿里的Reference這個註解,就可以將消費者註冊到zookeeper上就能實現調用啦。

查看dubbo的服務可以看到一個提供者一個消費者:

 

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