基礎(chǔ)架構(gòu)分布式配置中心

      網(wǎng)友投稿 790 2022-05-25

      隨著項目的復(fù)雜度越來越高,微服務(wù)的盛行,各個中間件相互配合并發(fā)揮其優(yōu)勢,各種配置是避免不了的,以前嘗試過配置放在文件,后來spring cloud 也推出了自己的spring cloud config 配置組件,功能上沒有問題,但真正使用起來還是不順手,順勢而為,攜程開發(fā)部門開源了一套配置平臺,官方介紹詳見?https://github.com/ctripcorp/apollo,這篇文章主要介紹安裝及Java、Net 項目使用。

      (一)? 環(huán)境要求

      Centos 7.5.1804

      Docker 18.06.1-ce

      (二)? 安裝設(shè)置

      數(shù)據(jù)庫設(shè)置

      a)????? 建庫文件可以從官方下載或直接在我上傳的百度網(wǎng)盤下載,點擊下載,打開任何客戶端執(zhí)行Sql文件即可,可以看到兩個數(shù)據(jù)庫

      ApolloconfigdbFat: 為具體環(huán)境配置庫,因為不同環(huán)境需要配置不同的存儲庫

      Apolloportaldb:為管理門戶

      服務(wù)安裝,我用到的鏡像為idoop/docker-apollo,版本號1.0.0,執(zhí)行如下命令下載鏡像,注意指定版本號 docker pull idoop/docker-apollo:1.0.0,因為最新版本對Net支持不完善。下載完成后,安裝服務(wù),命令行支持

      docker?run?-d?--network?host?--restart?always?--name?apollo?-e?PORTAL_DB="jdbc:mysql://192.168.1.215:3307/ApolloPortalDB?characterEncoding=utf8"?-e?PORTAL_DB_USER="root"?-e?PORTAL_DB_PWD="123456"?-e?FAT_DB="jdbc:mysql://192.168.1.215:3307/ApolloConfigDBFat?characterEncoding=utf8"?-e?FAT_DB_USER="root"?-e?FAT_DB_PWD="123456"?idoop/docker-apollo:1.1.0

      主要注意環(huán)境數(shù)據(jù)庫名字及賬號信息、鏡像版本。命令執(zhí)行完成后,輸入

      docker?ps?|?grep?apollo

      命令,查看容器狀態(tài)

      待容器狀態(tài)為Up的時候,在瀏覽器輸入?http://192.168.1.215:8070,進入管理門戶,默認(rèn)管理賬號為apollo/admin。可以看到如下圖示

      說明服務(wù)安裝成功。

      設(shè)置,點擊創(chuàng)建項目,設(shè)置項目的配置信息

      確認(rèn)沒有問題,再點擊發(fā)布,只有發(fā)布后,客戶端才能接收到信息,這個功能很給贊,考慮的比較周全。

      項目接入

      a)??????Net

      添加apollo.net程序包(v1.5.0)

      編輯App.config 或者其它配置文件

      讀取配置

      幫助 Utils

      private?static?void?OnChanged(object?sender,?ConfigChangeEventArgs?changeEvent) ????{ ????????Console.WriteLine("Changes?for?namespace?{0}",?changeEvent.Namespace);????????foreach?(string?key?in?changeEvent.ChangedKeys) ????????{ ????????????ConfigChange?change?=?changeEvent.GetChange(key); ????????????Console.WriteLine("Change?-?key:?{0},?oldValue:?{1},?newValue:?{2},?changeType:?{3}",?change.PropertyName,?change.OldValue,?change.NewValue,?change.ChangeType); ????????} ????}? ????static?void?Main(string[]?args) ????{ ????????Config?config?=?ConfigService.GetAppConfig(); ????????config.ConfigChanged?+=?OnChanged;? ????????while?(true) ????????{ ????????????Thread.Sleep(200);????????????var?timeout?=?config.GetProperty("timeout",?""); ????????????Console.WriteLine(timeout); ????????} }

      基礎(chǔ)架構(gòu)之分布式配置中心

      運行程序,輸入我們在配置中定義的key,比如我設(shè)置的xxx,會返回micro,如圖所示,這樣服務(wù)就達到預(yù)期的效果

      b)??????Java

      添加apollo-client包

      ????????com.ctrip.framework.apollo ????????apollo-client ????????1.0.0 ????

      編輯配置文件application.properties

      app.id配置APP的標(biāo)志號

      env 環(huán)境名稱,目前支持DEV、FAT、UAT、PRO

      apollo.meta config 服務(wù)

      app.id?=?test-app ?env?=?fat ?apollo.meta?=?http://192.168.1.215:8081

      application添加注解

      @EnableApolloConfig

      獲取配置信息

      /** ?????*?從apollo獲取配置信息 ?????*?*/ ????@ApolloConfig????private?Config?config; ? ????@GetMapping("/read_config")????public?Properties?apolloReadDemo(){????????/** ?????????*?得到當(dāng)前app.id中的配置 ?????????*?*/ ????????Set?set?=?config.getPropertyNames();????????for(String?key?:?set){ ????????????PropertiesUtils.properties.setProperty(key,config.getProperty(key,null)); ????????}????????for(String?key?:?PropertiesUtils.properties.stringPropertyNames()){ ????????????System.out.println(key+">>>"+PropertiesUtils.properties.getProperty(key)); ????????}????????return?PropertiesUtils.properties; }

      啟動項目,瀏覽器輸入http://localhost:8089/apollo/read_demo地址查看返回結(jié)果, 8089換成你自己的項目端口號,返回如下信息,示意服務(wù)正常運行。

      這樣分布式配置就介紹完了,主要介紹環(huán)境搭建及Net、java 項目接入,如果在開發(fā)中遇到問題,也可以留言共同探討共同進步。

      架構(gòu)設(shè)計 分布式

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:ROS機器人編程新書推薦(附免費下載)
      下一篇:將Android手機打造成你的python開發(fā)者桌面
      相關(guān)文章
      亚洲欧美日韩综合俺去了| 久久精品国产亚洲av水果派| 亚洲精品国产情侣av在线| 亚洲国产精品综合久久2007 | 久久亚洲国产午夜精品理论片| 亚洲国产日韩在线观频| 亚洲av无码成人影院一区| 亚洲一本综合久久| 亚洲情a成黄在线观看动漫尤物| 亚洲爆乳无码专区| 亚洲国产精品无码中文字| 亚洲AV永久无码区成人网站 | 久久久久无码专区亚洲av| 亚洲人成人网站在线观看| 亚洲免费一区二区| 久久影视综合亚洲| 亚洲人成色77777| 九月丁香婷婷亚洲综合色| 亚洲高清国产AV拍精品青青草原| 亚洲熟妇无码AV在线播放| 亚洲成色WWW久久网站| 亚洲AV日韩精品久久久久| 亚洲综合在线视频| 亚洲制服丝袜一区二区三区| 亚洲天堂男人影院| 亚洲精品亚洲人成在线| 国产亚洲精品欧洲在线观看| 亚洲制服丝袜在线播放| 中文无码亚洲精品字幕| 亚洲国产美女精品久久久| 亚洲人成网77777亚洲色| 日本亚洲欧洲免费天堂午夜看片女人员| 亚洲AV色吊丝无码| 亚洲高清中文字幕免费| 亚洲第一综合天堂另类专| 大胆亚洲人体视频| 亚洲精品国产美女久久久| 亚洲av无码一区二区三区网站 | 国产亚洲美日韩AV中文字幕无码成人 | 久久国产亚洲电影天堂| 激情内射亚洲一区二区三区|