溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

spring|springboot集成dubbo的操作過程

發(fā)布時間:2021-09-29 17:31:57 來源:億速云 閱讀:201 作者:柒染 欄目:大數(shù)據(jù)

本篇文章給大家分享的是有關(guān)spring|springboot集成dubbo的操作過程,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

項目背景

現(xiàn)在國內(nèi)中小公司,遠(yuǎn)程調(diào)用基本上用的都是dubbo ,當(dāng)然小刀的公司也不例外,我們以前用的是dubbo 2.4.x的版本,雖然也能使用,但是本著新項目新技術(shù)的追求,我們更新成了dubbo 2.7.x 的版本

springboot集成dubbo的應(yīng)用

以往的集成方式

引入dubbo , zk的jar包

@ImportResource({"classpath*:dubbo/*.xml"})public class Start extends SpringBootServletInitializer

dubbo.properties內(nèi)容如下:

dubbo.container=logback,springdubbo.application.name=dubbo-servicedubbo.registry.address=zookeeper://zookeeper.xxx.com:2181dubbo.log4j.file=logs/dubbo-service.logdubbo.log4j.level=WARNdubbo.protocol.port=20782dubbo.protocol.dispatcher=messagedubbo.protocol.threadpool=fixeddubbo.protocol.threads=200

還有dubbo.provider.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
   <dubbo:service timeout="30000" interface="com.xxx.xxx.xxxxService" ref="xxxxService"/> </beans>

這時候去dubbo-admin上應(yīng)該可以看到應(yīng)用注冊上去了

新的集成方式

借著上一波用gradle搭的多模塊的架子,今天我們來往里面添加dubbo
官方文檔:
https://github.com/apache/dubbo-spring-boot-project
先引入相關(guān)的依賴,這里就要注意了,依賴放在service層,因為是service層才需要提供dubbo服務(wù)出去. 當(dāng)然為了省事的話,也可以放到business-impl里面,因為我們通過會調(diào)用別的項目的dubbo接口,但是嚴(yán)格來說,基礎(chǔ)服務(wù)類的應(yīng)用,只從自己的數(shù)據(jù)庫取數(shù)據(jù),然后通過dubbo接口返回給業(yè)務(wù)應(yīng)用.所以在基礎(chǔ)應(yīng)用中,只能把依賴引在service層,業(yè)務(wù)應(yīng)用可以直接引在business-impl層

服務(wù)提供層

  implementation 'org.springframework.boot:spring-boot-starter'
 testImplementation 'org.springframework.boot:spring-boot-starter-test'  compile group: 'org.apache.dubbo', name: 'dubbo-spring-boot-starter', version: '2.7.1'  compile (group: 'org.apache.dubbo', name: 'dubbo-dependencies-zookeeper', version: '2.7.2')      {        exclude group:'org.slf4j'      }  compile ('org.apache.dubbo:dubbo:2.7.2'){    exclude group: 'org.springframework'    exclude group: 'javax.servlet'    exclude group: 'log4j'  }

application.properties中進(jìn)行配置:

dubbo.application.name=forest-servicedubbo.registry.address=zookeeper://zookeeper.xxx.com:30038dubbo.protocol.name=dubbodubbo.protocol.port=21899dubbo.config-center.address=zookeeper://zookeeper.xxx.com:30038dubbo.metadata-report.address=zookeeper://zookeeper.xxx.com:30038dubbo.scan.base-packages=com.platform.market.service.impl

此時代碼目錄結(jié)構(gòu)為:

spring|springboot集成dubbo的操作過程

其中,在實現(xiàn)類上,需要添加以下兩個注解:

@Service@Componentpublic class ItemServiceImpl implements ItemService

注意是dubbo包里面的service注解

然后我們在dubbo-admin中可以看到我們啟動的服務(wù)

spring|springboot集成dubbo的操作過程

服務(wù)消費層

這邊就很簡單了,一句話搞定,把以前我們寫的@Autowire 換成dubbo包內(nèi)的 @Reference
就可以了
配置文件中只需要引注冊地址就可以了,

dubbo.application.name=xxxx-xxxxdubbo.registry.address=zookeeper://zookeeper.xxx.com:30038

以上就是spring|springboot集成dubbo的操作過程,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI