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簡直強了無數倍,並且賊方便!
具體的功能你們能夠跟着操做以後去探討,這裏就再也不展開來講了。
今天的文章就到這裏,下面宣佈一個好消息:
原定於粉絲達到必定數量後作送書活動回饋你們,因爲本公號博主真愛技術佛系漲粉,無運營無套路,因此增粉速度超~級~慢~,原定目標短期內沒法達成,所以決定清明小長假事後就開啓送書活動,你們久等了!感謝你們的信任支持與相伴,筆芯~
掃碼便可參加活動