您好,登錄后才能下訂單哦!
dubbo服務(wù)需要zookeeper服務(wù)的支持,之前我們已經(jīng)介紹過(guò)zookeeper的安裝配置,這里就不在贅述
在本系統(tǒng)中的服務(wù)提供者(Provider) 由 tyh-manager-service 提供。 現(xiàn)在需要將此服務(wù)
發(fā)布到 dubbo 中, 并在 zookeeper 中進(jìn)行注冊(cè)。
在 service 工程中需要增加對(duì) dubbo 和 zookeeper 的依賴包。 增加依賴包在目前的項(xiàng)目
結(jié)構(gòu)中需要先在 ycshop-parent 父工程中統(tǒng)一進(jìn)行引用版本的管理。
父工程中的引用:
<properties>
<dubbo.version>2.6.2</dubbo.version>
<zookeeper.version>3.4.13</zookeeper.version>
<zkclient.version>0.1</zkclient.version>
<curator-versioin>2.8.0</curator-versioin>
</properties>
<!-- dubbo 相關(guān) -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>${dubbo.version}</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>${zookeeper.version}</version>
</dependency>
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>${zkclient.version}</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>${curator-versioin}</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>${curator-versioin}</version>
</dependency>
在 ycshop-manager-service 工程中增加對(duì) dubbo 和 zookeeper 的依賴包引用。具體依賴如下:
<!-- dubbo 相關(guān)依賴 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<!-- 排除依賴。 處理對(duì) spring 引用版本沖突問題 -->
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
</exclusion>
<exclusion>
<groupId>org.jboss.netty</groupId>
<artifactId>netty</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- zookeeper 的客戶端, 要連接 zookeeper, 需要把以下兩個(gè) jar 包加進(jìn)來(lái) -->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</dependency>
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
</dependency>
在 spring-service.xml 配置文件中增加一下配置:
<!-- 使用 dubbo 發(fā)布服務(wù) -->
<!-- 服務(wù)提供者應(yīng)用信息, 用于計(jì)算依賴關(guān)系 -->
<dubbo:application name="ycshop-manager" />
<!-- 注冊(cè)中心地址。 使用 zookeeper 作為注冊(cè)中心, 地址為 2.1 中所啟動(dòng)的 zookeeper 地址。 還可以是配置多個(gè)注冊(cè)中心,
在 address 中使用逗號(hào)分割 -->
<dubbo:registry protocol="zookeeper" address="47.100.224.4:2181" />
<!-- 用 dubbo 協(xié)議在 20880 端口暴露服務(wù) -->
<dubbo:protocol name="dubbo" port="20880" />
<!-- 聲明需要暴露的服務(wù)接口,ref 鏈接實(shí)現(xiàn)對(duì)象。 adminServiceImpl 這里是使用 自動(dòng)掃描后默認(rèn)的服務(wù) bean 名稱 -->
<dubbo:service interface="cn.yuechenc.manager.interfaces.UserService"
ref="userServiceImpl" />
在 XML 文件中增加命名空間的引用:
配置文件說(shuō)明:<dubbo:application name="tyh-manager" />
:是用來(lái)配置在注冊(cè)中心的名字, 標(biāo)識(shí)我
們當(dāng)前應(yīng)用的一個(gè)名稱, 可以隨便起, 但是最好不要跟其他的應(yīng)用重復(fù), 最好跟你的工程名
相對(duì)應(yīng)。dubbo:registry protocol="zookeeper" address="47.100.224.4:2181"
: 用于配置注冊(cè)中心的地址。 這里使用 zookeeper 協(xié)議, 并且地址為 47.100.224.4(zookeeper的安裝服務(wù)器地址。 ) 2181: zookeeper 默認(rèn)的端口號(hào)(可以在 zookeeper 中進(jìn)行配置)<dubbo:protocol name="dubbo" port="20880" />
: 協(xié)議配置, 用于配置提供服務(wù)的協(xié)議信息, 協(xié)議由提供方指定, 消費(fèi)方被動(dòng)接受。 這里使用 dubbo 協(xié)議, 從 20880 端口向注冊(cè)中心暴露服務(wù)提供方地址。
此時(shí)我們還無(wú)法啟動(dòng),因?yàn)轫?xiàng)目里缺少cn.yuechenc.manager.interfaces.UserService
這個(gè)接口,所以啟動(dòng)測(cè)試留到下一篇介紹
在本系統(tǒng)中 ycshop-manager-web 工程作為服務(wù)的消費(fèi)者。 現(xiàn)在 web 工程需要通過(guò) dubbo服務(wù)來(lái)引用 service 工程所提供的服務(wù)。
在 ycshop-manager-web 工程中添加對(duì) dubbo 和 zookeeper 相關(guān)的依賴包。 Pom.xml 文件增加以下內(nèi)容:
<!-- dubbo 相關(guān)依賴 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<!-- 排除依賴 -->
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
</exclusion>
<exclusion>
<groupId>org.jboss.netty</groupId>
<artifactId>netty</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- zookeeper 的客戶端, 你要連接 zookeeper, 需要把以下兩個(gè) jar 包加進(jìn) 來(lái) -->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</dependency>
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
</dependency>
<!-- JSON 相關(guān) -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
</dependencies>
在 spring-mvc.xml 文件中增加以下配置:
<!-- 引用 dubbo 服務(wù) -->
<dubbo:application name="tyh.manager-web" />
<dubbo:registry protocol="zookeeper" address="47.100.224.4:2181" />
<dubbo:reference interface="cn.yuechenc.manager.interfaces.UserService"
id="userService" />
配置說(shuō)明:<dubbo:application name="tyh.manager-web" />
:是用來(lái)配置在注冊(cè)中心的名字, 標(biāo)識(shí)我們當(dāng)前應(yīng)用的一個(gè)名稱, 可以隨便起, 但是最好不要跟其他的應(yīng)用重復(fù), 最好跟你的工程名相對(duì)應(yīng)。dubbo:registry
:注冊(cè)中心的地址dubbo:reference
: 服務(wù)所暴露的服務(wù)。 需要和服務(wù)引用同樣的接口。 (所以在 MVC 工程中需要引用 ycshop-manager-interfaces 接口)
同樣,這時(shí)候還不能啟動(dòng),啟動(dòng)測(cè)試我們下節(jié)再介紹。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。