在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何利用apollo實現(xiàn)配置文件的灰度發(fā)布?

jf_ro2CN3Fa ? 來源:CSDN ? 2023-02-16 10:09 ? 次閱讀

前言

在上一篇,通過dubbo的版本號控制,我們實現(xiàn)了一個服務的簡單的灰度發(fā)布過程,在真實的項目環(huán)境中,灰度發(fā)布的應用場景是很多的,服務接口存在灰度的需求,本篇再介紹另一種比較常見的灰度需求場景,即配置文件的灰度發(fā)布

配置文件簡介

如今,微服務架構(gòu)盛行下,不管是互聯(lián)網(wǎng)大廠,還是規(guī)模較小的團隊,都有一套自己的中央配置文件管理中心,各個微服務模塊都能接入中央配置文件,進行統(tǒng)一的使用,現(xiàn)如今,配置中心的技術(shù)選擇也是非常豐富的,比如springcloud技術(shù)棧下的springcloud-config,springcloud-alibaba下自研的nacos,傳統(tǒng)的配置中心disconf,攜程出品的apollo等,都是不錯的選擇

不管外觀如何變化,他們的作用都是相同的,那就是統(tǒng)一管理微服務的配置,起到統(tǒng)一管理,統(tǒng)一維護,統(tǒng)一調(diào)度的作用

在這種形勢下,實際的業(yè)務中就出現(xiàn)了這么一種情況,配置管理中心可能存在針對不同環(huán)境,比如 dev,test,prod等環(huán)境各自的一套配置文件,但實際上,這還是無法滿足某些場景下的要求的

舉例來說,像上一篇介紹的,服務接口需要做到灰度使用,利用不同的版本號進行控制,從而達到新功能和之前穩(wěn)定版本功能做到動態(tài)切換的效果,而配置文件是控制程序中某些業(yè)務的關(guān)鍵信息,同樣需要做到類似的功能,這種情況下該如何實現(xiàn)呢?

在一些開源的配置管理技術(shù)框架中,它們?yōu)榱藵M足這樣的需求就實現(xiàn)了類似的灰度發(fā)布的功能,本篇將介紹如何利用apollo實現(xiàn)配置文件的灰度發(fā)布

apollo簡介與快速搭建

關(guān)于apollo的介紹,網(wǎng)上有大量的參考和學習資料,主要想說的是,apollo是一款非常好用的配置管理工具,應用于各個大中小型互聯(lián)網(wǎng)公司,可以無縫整合到很多java框架下,代碼侵入性低,而配置文件修改后實時生效是它的一大亮點

快速搭建過程

本篇基于centos7或者阿里云

1、安裝java環(huán)境

安裝JDK1.8及以上(省略)

2、安裝mysql

安裝mysql5.7及以上(省略)

3、github下載源碼包

下載Release版本

f7f5a114-ad3d-11ed-bfe3-dac502259ad0.png

其主要的目錄文件如上圖所示,首先,在mysql中執(zhí)行下sql目錄下的兩個sql腳本,apollo的運行依賴數(shù)據(jù)庫

f8058c1e-ad3d-11ed-bfe3-dac502259ad0.png

4、將解壓后的文件上傳至服務器

修改demo.sh,主要修改連接數(shù)據(jù)庫信息

f8143110-ad3d-11ed-bfe3-dac502259ad0.png

修改內(nèi)容如下,主要將數(shù)據(jù)庫連接信息配置成自己的數(shù)據(jù)庫IP即可

f8293e2a-ad3d-11ed-bfe3-dac502259ad0.png

修改完畢后,啟動apollo,只需要執(zhí)行命令: sh demo.sh start 即可,等待服務啟動完畢之后,瀏覽器訪問:http://IP:8070,然后輸入默認登錄用戶名和密碼 apollo/admin 即可進入apollo主頁面

f84d481a-ad3d-11ed-bfe3-dac502259ad0.png

關(guān)于apollo的具體使用本文不做過多贅述,有興趣的同學可以深入學習

5、apollo創(chuàng)建一個項目

為了后文使用演示,這里快速創(chuàng)建一個app,和一個namespace,創(chuàng)建也非常簡單,只需要點擊 "創(chuàng)建應用"即可

f86b40cc-ad3d-11ed-bfe3-dac502259ad0.png

默認是application應用,當然可以通過創(chuàng)建新的namespace的方式新建一個新的namespace,這個是為了各自的項目管理自身的配置文件進行使用,為了方便測試,這里我們在application應用下,創(chuàng)建了一個叫做dubbo的namespace,隨機添加幾個配置文件,即key/value的數(shù)據(jù)

友情提醒:注意appId,工程中后面有使用

以上的準備工作到此結(jié)束

演示工程步驟

提前準備一個springboot工程

1、添加核心依賴

主要包括springboot和apollo客戶端連接依賴


org.springframework.boot
spring-boot-starter-web
2.2.1.RELEASE



com.ctrip.framework.apollo
apollo-client
1.5.1

2、配置文件

server:
port:8001

#連接apollo的配置
app:
id:provider
apollo:
meta:http://IP:8080
bootstrap:
enabled:true
namespaces:dubbo

3、apollo連接測試

在工程中寫一個接口,測試一下是否能從apollo上面讀取到配置,測試讀取一下下面這個配置

f883578e-ad3d-11ed-bfe3-dac502259ad0.png

@Value("${uyun:default}")
privateStringuyunname;

@GetMapping("/getUyunName")
publicStringgetUyunName(){
returnuyunname;
}

啟動項目,瀏覽器訪問一下該接口,可以看到能成功訪問到apollo,說明與apollo的整合完畢

f89850f8-ad3d-11ed-bfe3-dac502259ad0.png

如何解決本文開篇談到的使用apollo實現(xiàn)配置文件的灰度發(fā)布呢?回到apollo,我們注意到這里有個“灰度”按鈕

f8abacde-ad3d-11ed-bfe3-dac502259ad0.png

這是什么意思呢?簡單理解就是,使用這個灰度按鈕的功能,可以對當前的配置文件進行一份拷貝,類似備份,同時我們可以對灰度的配置進行添加,修改,刪除等操作,而灰度文件的修改不會影響到主配置文件,下面我們對 "dubbo"這個配置文件做一下灰度的配置吧

點擊“灰度”

f8c1bdb2-ad3d-11ed-bfe3-dac502259ad0.pngf8c1bdb2-ad3d-11ed-bfe3-dac502259ad0.png

可以看到,灰度創(chuàng)建的內(nèi)容是對主配置文件的全量拷貝,當然灰度配置也需要像主配置文件那樣進行發(fā)布之后才能使用的,點擊發(fā)布,彈出一個需要我們設置灰度規(guī)則的框

f916792e-ad3d-11ed-bfe3-dac502259ad0.pngf9262e0a-ad3d-11ed-bfe3-dac502259ad0.png

簡單解釋下,既然是灰度發(fā)布的配置文件,自然不能讓所有的客戶端訪問到,這里apollo提供了幾種配置規(guī)則方式,這里我選擇了直接配置IP的方式,將本機的IP填進去,然后保存,再次發(fā)布即可

這個規(guī)則的含義就是,當前dubbo的這個灰度配置文件,只能允許我的本機IP進行訪問,接下來就讓我們做一下驗證吧

4、灰度配置測試

在工程中新增一個接口,同時給灰度配置文件中新增2個配置

f939426a-ad3d-11ed-bfe3-dac502259ad0.png

@Value("${name:default}")
privateStringuname;

@Value("${age:default}")
privateStringage;

@GetMapping("/getUyunName")
publicStringgetUyunName(){
returnuyunname;
}

將本機的其中一個項目啟動,訪問新增的這個接口,可以發(fā)現(xiàn),能夠成功訪問到灰度文件中的配置信息

f94913de-ad3d-11ed-bfe3-dac502259ad0.png

為了驗證灰度的功能,我們將項目打成jar包,部署到服務器上,服務器的IP不在灰度配置列表中,理論上是無法訪問到 age 這個新增的配置的

f95f5054-ad3d-11ed-bfe3-dac502259ad0.png

成功啟動后,瀏覽器直接訪問云服務器上面的這個接口,這時,可以發(fā)現(xiàn),同樣的接口,由于IP未配置在灰度規(guī)則中,將無法讀取到age這個配置的值

f97dd7d6-ad3d-11ed-bfe3-dac502259ad0.pngf991635a-ad3d-11ed-bfe3-dac502259ad0.png

踩坑提醒

如果使用的是阿里云或者其他云服務器部署apollo的時候,本地項目連接apollo的時候會一直報apollo的連接超時問題,這個問題的解決辦法是,在啟動的配置vm中,添加如下參數(shù)即可

-Dapollo.configService=http://apollo部署的主機IP:8080
f9a52d40-ad3d-11ed-bfe3-dac502259ad0.png







審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2983

    瀏覽量

    106468
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    840

    瀏覽量

    27307
  • Apollo
    +關(guān)注

    關(guān)注

    5

    文章

    345

    瀏覽量

    18644

原文標題:基于 Apollo 實現(xiàn)配置灰度發(fā)布

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    基于libconfig進行配置文件解析

    本文介紹基于libconfig進行配置文件解析
    的頭像 發(fā)表于 06-08 10:18 ?1748次閱讀
    基于libconfig進行<b class='flag-5'>配置文件</b>解析

    探討PROE的配置文件——系統(tǒng)配置文件config.pro

    PROE的配置文件讓不少初學者感到煩惱,盡管不少教材里都會提到關(guān)于PROE的配置文件。但大多數(shù)顯得過于理論化,而不便于初學者理解,可操作性不強。本文力求以通俗的語言結(jié)合
    發(fā)表于 09-28 15:50 ?0次下載

    ICD配置文件的詳細介紹和配置內(nèi)容的詳細概述

    配置文件配置文件利用SCL語言描述變電站設備對象模型后生成的文件,用于在不同廠商的配置工具之間交換配置
    的頭像 發(fā)表于 06-02 11:16 ?1.8w次閱讀
    ICD<b class='flag-5'>配置文件</b>的詳細介紹和<b class='flag-5'>配置</b>內(nèi)容的詳細概述

    Keil的黑色界面配置文件配置方法

    本文檔的主要內(nèi)容詳細介紹的是Keil的黑色界面配置文件配置方法。
    發(fā)表于 12-03 15:05 ?26次下載

    Python進行配置文件的教程免費下載

    本文檔的主要內(nèi)容詳細介紹的是Python進行配置文件的教程免費下載。
    發(fā)表于 09-30 16:41 ?6次下載
    Python進行<b class='flag-5'>配置文件</b>的教程免費下載

    AD8283評估板設計和配置文件

    AD8283評估板設計和配置文件
    發(fā)表于 05-31 16:04 ?9次下載
    AD8283評估板設計和<b class='flag-5'>配置文件</b>

    labview讀寫配置文件實例分享

    labview讀寫配置文件實例分享
    發(fā)表于 11-01 16:05 ?46次下載

    配置文件和例程文件的使用

    上期講述了AMetal平臺驅(qū)動框架中的硬件層,介紹了硬件層的驅(qū)動是如何實現(xiàn)及其硬件層接口的定義,逐漸深入了解AMetal平臺。接下來向大家介紹配置文件和例程文件的使用,以此可靈活使用相應外設的資源。
    的頭像 發(fā)表于 04-07 11:49 ?2330次閱讀
    <b class='flag-5'>配置文件</b>和例程<b class='flag-5'>文件</b>的使用

    SpringBoot配置文件application

    Map配置 YML配置文件: sys-num: mymap: "{'a':'aaa','b':'bbb'}" 方法內(nèi): public class learnMap { @Value
    的頭像 發(fā)表于 01-13 15:28 ?758次閱讀

    KT142C語音芯片配置文件總是不起作用?配置文件的問題集中歸納

    KT142C語音芯片配置文件總是不起作用?配置文件的問題集中歸納
    的頭像 發(fā)表于 10-20 15:04 ?752次閱讀
    KT142C語音芯片<b class='flag-5'>配置文件</b>總是不起作用?<b class='flag-5'>配置文件</b>的問題集中歸納

    linux修改網(wǎng)卡ip配置文件

    Linux是一種開源的操作系統(tǒng),因此,它給用戶提供了很高的自由度,可以根據(jù)個人需要進行各種定制和配置。其中,修改網(wǎng)絡接口配置文件是常見的操作,可以通過修改網(wǎng)卡ip配置文件來設置網(wǎng)絡接口的IP地址
    的頭像 發(fā)表于 11-17 10:51 ?2690次閱讀

    springboot的全局配置文件有幾種

    Spring Boot是一種快速開發(fā)框架,其通過提供配置文件實現(xiàn)對應用程序的配置。全局配置文件在Spring Boot中起著非常重要的作用,可以用于
    的頭像 發(fā)表于 12-03 15:28 ?1867次閱讀

    zookeeper的核心配置文件是什么

    Zookeeper是一個常用的分布式協(xié)調(diào)服務,它被廣泛應用于大型分布式系統(tǒng)中。Zookeeper的核心配置文件是zoo.cfg,它包含了Zookeeper服務器的各種配置參數(shù),可以通過修改這些參數(shù)
    的頭像 發(fā)表于 12-04 10:33 ?1007次閱讀

    php的配置文件是什么

    PHP的配置文件是一種用于配置PHP解釋器的文本文件。它包含了一系列的指令和選項,用于影響PHP的行為和性能。通過修改配置文件,可以改變PHP解釋器的默認行為,從而滿足不同的需求。 在
    的頭像 發(fā)表于 12-04 15:55 ?1772次閱讀

    labview的opc生成配置文件

    的數(shù)據(jù)交互和通信。在 LabVIEW 中生成 OPC 配置文件有助于實現(xiàn)與其他設備的數(shù)據(jù)傳輸和共享,本文將詳細介紹如何生成 OPC 配置文件。 首先,在 LabVIEW 中生成 OPC 配置文
    的頭像 發(fā)表于 12-26 17:57 ?2388次閱讀
    主站蜘蛛池模板: 欧美性精品videofree | 日本一区视频在线观看 | 欧美在线观看一区二区三 | 色天使色婷婷在线影院亚洲 | xxxx日本xx | 人人搞人人 | 美女一级毛片毛片在线播放 | 久久六月丁香婷婷婷 | 午夜激情网站 | 91精品欧美激情在线播放 | 亚洲成色www久久网站 | 99久久网站 | 国产午夜精品一区二区 | 国产精品久久久久久久人热 | 黄色福利网 | 康熙古代高h细节肉爽文全文 | 婷婷激情久久 | 婷婷影院在线综合免费视频 | 天天躁日日躁狠狠躁一级毛片 | 好大好硬好深好爽想要免费视频 | 国产亚洲欧美一区二区 | 亚洲一区精品中文字幕 | 免费在线播放毛片 | 狠狠干夜夜草 | 免费看黄在线观看 | 一级特黄aaa大片 | 手机看片日韩高清1024 | 一区二区中文字幕亚洲精品 | 91青草视频 | 日本特黄特色大片免费看 | 欧美日韩色片 | 久久在草| 婷婷 综合网站 | 日本黄色美女视频 | 嫩草影院久久国产精品 | 美女被艹视频网站 | www.av日韩| 日本xxxx色视频在线观看 | 色老久久精品偷偷鲁一区 | www.四虎.com| 男女一进一出无遮挡黄 |