日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Boot 2.x(十五):Dubbo + Zookeeper + Dubbo Admin

發布時間:2023/12/15 javascript 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Boot 2.x(十五):Dubbo + Zookeeper + Dubbo Admin 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Dubbo 簡介

Dubbo是阿里巴巴公司開源的一個高性能優秀的服務框架,使得應用可通過高性能的RPC實現服務的輸出和輸入功能,可以和Spring框架無縫集成

它提供了三大核心能力:

  • 面向接口的遠程方法調用

  • 智能容錯負載均衡

  • 服務自動注冊和發現。

官網圖

可以看出圖中存在著五種角色:

  • Provider:服務提供者

  • Consumer:服務消費者

  • Registry:服務注冊中心

  • Monitor:服務監控中心

  • Container:服務運行的容器

圖上的過程可以這么來解釋:

  • 在容器(Container)啟動服務的提供者(Provider)

  • 服務的提供者(Provider)將服務以接口的形式注冊到注冊中心(Registry)

  • 服務的消費者(Consumer)向注冊中心訂閱服務

  • 注冊中心向服務的消費者返回服務的提供者提供的服務接口(異步)

  • 服務的消費者去調用服務的提供者(同步)

  • 監控中心負責統計服務的調用次數和調用時間的日志服務。

  • 這里我們采用 zookeeper 作為服務注冊中心,這里我查閱官方文檔發現 Redis 也可以作為Dubbo的注冊中心,只不過在應用中比較少見,而且官方文檔中也說明了:

    如果我們想用的話,只需要把dubbo.registry.addrss的值改為redis://127.0.0.1:6379即可使用。

    理論到這里,下面就讓我們來進入實戰吧~

    zookeeper的安裝

    這里我是在 Mac OS 環境下進行安裝,你可以在本地安裝虛擬機來完成這個操作。

    首先我們需要前往官網下載安裝包。

    #?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

    實例

    編寫Provider

    引入我們項目需要的Maven依賴:

    <!?--這里的包不要寫錯了,我試了一下阿里的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包下的喲,可千萬別寫錯了!

    編寫Consumer

    同樣要引入依賴:

    <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

    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簡直強了無數倍,而且賊方便!

    具體的功能大家可以跟著操作之后去探討,這里就不再展開來說了。

    今天的文章就到這里,下面宣布一個好消息:

    活動通知

    原定于粉絲達到一定數量后做送書活動回饋大家,由于本公號博主真愛技術佛系漲粉,無運營無套路,所以增粉速度超~級~慢~,原定目標短時間內無法達成,因此決定清明小長假過后就開啟送書活動,大家久等了!感謝大家的信任支持與相伴,順便偷個懶,下周小長假就不更新了,也祝大家假期愉快~筆芯~

    掃碼關注即可參加活動。


    我從沒見過一個不孤獨的人會發出耀眼的光芒

    純原創技術公號

    作者:Vi.Young

    掃碼獲取更多干貨

    ?博客園:Vi的技術博客

    總結

    以上是生活随笔為你收集整理的Spring Boot 2.x(十五):Dubbo + Zookeeper + Dubbo Admin的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。