當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Dubbo+Zookeeper+SpringBoot
生活随笔
收集整理的這篇文章主要介紹了
Dubbo+Zookeeper+SpringBoot
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
步驟
- 一、Provider提供服務
- 1. 導入依賴
- 2. 配置注冊中心地址、服務發現名、要掃描的包
- 3. 在想要被注冊的服務上面 增加一個注解`@service`(注意:是服務注解非service層注解)
- 二、消費者如何消費
- 1. 導入依賴(和上面的一樣)
- 2. 配置注冊中心地址、自己的服務名
- 3. 從遠程注入服務 `@Reference`
- 三、測試
- 附:項目結構
前提:zookeeper服務已開啟!
一、Provider提供服務
1. 導入依賴
pom.xml 文件:
<!-- Dubbo --><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.7.8</version></dependency><!-- zookeeper 客戶端--><dependency><groupId>com.github.sgroschupf</groupId><artifactId>zkclient</artifactId><version>0.1</version></dependency><!-- zookeeper 服務端--><dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.6.2</version><!-- 排除slf4j,解決日志沖突 --><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></exclusion></exclusions></dependency><!-- zookeeper 服務端的依賴--><dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</artifactId><version>2.10.0</version></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-recipes</artifactId><version>2.10.0</version></dependency>2. 配置注冊中心地址、服務發現名、要掃描的包
application.properties 文件:
# 服務端口號 server.port=8001 # 服務應用名字 dubbo.application.name=provider-server # 注冊中心地址 dubbo.registry.address=zookeeper://127.0.0.1:2181 # 哪些服務要被注冊 dubbo.scan.base-packages=com.ex.service3. 在想要被注冊的服務上面 增加一個注解@service(注意:是服務注解非service層注解)
package com.ex.service;public interface TickertService {public String getTicket(); } package com.ex.service.impl;import com.ex.service.TickertService; import org.apache.dubbo.config.annotation.Service; import org.springframework.stereotype.Component;/*** zookeeper:服務注冊與發現*/ @Service // 可以被掃描到,在項目一啟動就自動注冊到注冊中心 @Component //使用了Dubbo后盡量不要用Service注解 public class TickerServiceImpl implements TickertService {@Overridepublic String getTicket() {return "a ticket";} }二、消費者如何消費
1. 導入依賴(和上面的一樣)
2. 配置注冊中心地址、自己的服務名
application.properties 文件:
# 端口號 server.port=8002 # 消費者去哪里拿服務,需要暴露自己的名字 dubbo.application.name=consumer-server # 注冊中心的地址 dubbo.registry.address=zookeeper://192.168.199.170:21813. 從遠程注入服務 @Reference
package com.ex.service; /*** 在相同目錄位置建立和遠程服務上相同的服務接口*/ public interface TickertService {public String getTicket(); } package com.ex.service;public interface UserService {public void buyTicket(); } package com.ex.service.impl;import com.ex.service.TickertService; import com.ex.service.UserService; import org.apache.dubbo.config.annotation.Reference; import org.springframework.stereotype.Component;@Component public class UserServiceImpl implements UserService {//想要拿到provider-server提供的漂,要去注冊中心拿到服務@Reference // 引用:pom坐標:定義路徑相同的接口名private TickertService tickertService;@Overridepublic void buyTicket() {System.out.println("user buy "+tickertService.getTicket());} }三、測試
啟動服務者和消費者的Application。進入Duubo-admin 管理界面 http://localhost:7001/ ,可以看到提供者和消費者的情況。
在消費者服務端進行測試。看是否可以調用服務端的方法。
附:項目結構
搭建過程:
總結
以上是生活随笔為你收集整理的Dubbo+Zookeeper+SpringBoot的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android官方开发文档Trainin
- 下一篇: 笔记:猎头如何在一周之内“摸清”一个行业