Dubbo是阿里巴巴公司開源的一個高性能優秀的服務框架,使得應用可經過高性能的RPC實現服務的輸出和輸入功能,能夠和Spring框架無縫集成。html
它提供了三大核心能力:java
能夠看出圖中存在着五種角色:git
圖上的過程能夠這麼來解釋:github
這裏咱們採用 zookeeper 做爲服務註冊中心,這裏我查閱官方文檔發現 Redis 也能夠做爲Dubbo的註冊中心,只不過在應用中比較少見,並且官方文檔中也說明了:redis
若是咱們想用的話,只須要把
dubbo.registry.addrss
的值改成redis://127.0.0.1:6379
便可使用。spring
理論到這裏,下面就讓咱們來進入實戰吧~apache
這裏我是在 Mac OS 環境下進行安裝,你能夠在本地安裝虛擬機來完成這個操做。瀏覽器
首先咱們須要前往官網下載安裝包。springboot
# 0. 解壓
tar -zxvf zookeeper-3.4.13.tar.gz
# 1. 切換到解壓後的目錄下
cd zookeeper-3.4.13/
# 2. 創建data和logs目錄
mkdir data
mkdir logs
# 3. 複製zoo_sample.cfg 爲 zoo.cfg
cd conf/
cp zoo_sample.cfg zoo.cfg
# 4. 修改配置
vi zoo.cfg
dataDir=剛剛新建的data目錄的絕對路徑
logDir=剛剛新建的data目錄的絕對路徑
# 5. 啓動
cd ../bin
./zkServer.sh start
# 6. 檢測是否啓動成功
./zkServer.sh status
複製代碼
引入咱們項目須要的Maven依賴:bash
<! --這裏的包不要寫錯了,我試了一下阿里的starter,發現有不少問題,並無這個好用 -->
<dependency>
<groupId>io.dubbo.springboot</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>1.0.0</version>
</dependency>
複製代碼
而後對註冊中心以及服務接口包的暴露的配置
spring.dubbo.application.name=provider
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=27899
spring.dubbo.scan=indi.viyoung.dubbo.provider.service
複製代碼
編寫Service
接口和實現類:
public interface TestService {
String test();
}
複製代碼
@Service
public class TestServiceImpl implements TestService {
@Override
public String test() {
return "Hello Wolrd";
}
}
複製代碼
須要注意的是這裏的Service
註解必須是dubbo包下的喲,可千萬別寫錯了!
一樣要引入依賴:
<dependency>
<groupId>io.dubbo.springboot</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>1.0.0</version>
</dependency>
複製代碼
Consumer的配置的話比較少:
spring.dubbo.application.name=consumer
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
複製代碼
直接在Controller中引用
public class TestController {
@Reference
private TestService testService;
@RequestMapping()
public String hello() {
return testService.test();
}
}
複製代碼
注意這裏的@Reference
註解不要寫錯,應該是Dubbo包下的!
而後把項目啓動後,咱們訪問一下:
Nice,訪問成功!
下面,咱們來學習一下Dubbo-Admin的使用
Dubbo-Admin以前給個人感受就是沒有UI的樣子:
大概就長這個樣子,賊醜,可是不知道啥時候悄悄摸摸的更新了一波,變得讓顏值控也是很是滿意,並且支持jar包啓動,不用再去單獨的安裝Tomcat~git clone https://github.com/apache/incubator-dubbo-ops.git
複製代碼
首先從Git上把這個項目拉下來,用IDEA打開:
只須要添加一個端口號的配置,而後使用左側的maven打包工具打包:
而後去dubbo-admin-server的target的目錄下使用如下命令:
java -jar dubbo-admin-server-0.1.jar >run.log &
複製代碼
而後打開瀏覽器,輸入localhost:7070
對比以前的UI簡直強了無數倍,並且賊方便!
具體的功能你們能夠跟着操做以後去探討,這裏就再也不展開來講了。