<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Apollo配置中心-配置熱發布如何實現

      引言
      配置中心在微服務架構體系中是非常重要的基礎設施服務,承擔著分布式配置集中管理、配置熱發布以及審計等重要的職責。本文主要探討??Apollo??配置中心的配置熱發布特性如何實現。

      配置熱發布如何實現

      1、配置發布主流程
      如上圖所示,配置發布的主流程如下:

      (1)用戶通過??Portal??向??AdminService??發布配置信息;

      (2)??AdminService??在配置發布后會往??ReleaseMessage??表插入一條消息記錄;

      (3)??ConfigService??中包含了一個定時線程,該定時線程每秒掃描一次??ReleaseMessage??表,檢查表中是否有新的消息記錄;

      (4)如果存在配置更新,??ConfigService??就會通知所有的消息監聽器;

      (5)通知??Controller??會根據發布的配置信息通知對應的客戶端;

      客戶端與配置中心的大致交互如下所示:

      這里的配置更新推送其實并不是真正進行信息推送,而是通過長輪詢來實現配置的更新。實際上并不是配置的更新推送,而是配置更新通知的推送,客戶端拿到通知后需要進一步獲取具體的變化的配置信息。

      2、長輪詢
      (1)如果使用??Push??方式推送數據會有什么問題?

      服務端需要與客戶端建立長連接,服務端有數據更新的時候可以進行數據推送,數據更新比較及時。但是服務端無法感知客戶端的處理能力,可能會造成數據積壓。另外集群情況下部分節點不在線會通知失敗,等客戶端又在線后需要進行補償推送,節點還有可能存在擴容等各種情況。對于配置中心這種業務場景來說,通過??Push??方式實現數據推動顯得復雜了。

      (2)如果使用??Pull??方式拉取數據會有什么問題?

      ??Pull??模式主要是通過客戶端主動向配置中心進行數據請求,拉取對應的配置信息。由于是客戶端主動拉取,因此不會出現數據堆積的問題。但是數據如何去拉,什么時間去拉,拉的頻率如何控制,這些都是問題。如果頻率過高,而配置并未更新,那么就會對服務端造成不必要的連接壓力。如果頻率過低,那么配置更新就會存在延時的問題。因此同樣不適合配置中心的業務場景。

      (3)長輪詢

      客戶端向配置中心進行請求,配置中心不會立即返回響應,而是會??hold??住這個請求直到指定時間超時后進行返回。如果沒有配置變更,則返回??Http??狀態碼??304??給客戶端。超時返回后,客戶端將再次發起請求。

      如果存在配置變更,將返回對應的??namespace??信息,客戶端根據namespace信息獲取對應的配置信息。

      另外為了保證配置的有效性,客戶端也會定時請求配置信息,防止配置更新可能出現的異常情況,是一種數據保證的兜底??fallback??機制。另外當獲取到配置后,會同步到本地配置文件中 。這樣即便客戶端與配置中心無法通信,客戶端也可以從本地配置文件中獲取配置信息。

      那么問題來了,為什么不直接在長輪詢的響應中直接回復配置信息呢?主要是由于本身已經存在了定時拉取配置的步驟,那么為了保證單一原則以及代碼上的簡潔以及復用。所以通過這種獲取配置更新后再進行數據拉取的方式。

      3、客戶端獲取配置信息
      我們一起看下客戶端如何工作流程,如下圖:

      (1)??ConfigServiceLocator??:主要負責向??Eruka??注冊中心獲取??ConfigService??地址列表信息;

      (2)??RemoteConfigLongPollService??:從??ConfigServiceLocator??獲取到地址列表信息后,通過長輪詢的方式獲取配置變更信息;

      (3)??RemoteConfigReposity??:從??ConfigService??獲取變更的配置數據;

      (4)??LocalFileConfigReposity??:把配置數據固化到本地,同時作為本地配置數據的來源;

      (5)??DefaultConfig??:主要和業務方進行交互,提供配置獲取方法,同時可以注冊配置變更事件。

      總結
      本文主要探討了??Apollo??配置中心配置熱發布的相關內容,分析了為什么長輪詢是比較適合配置中心的數據交互方式。在今后的架構設計中我們也可以以此來作為參考。另外客戶端的設計中,也體現了了分層以及職責單一的代碼風格,我們自己在實際項目開發中也比較有借鑒的意義

      ————————————————————————————————————————————————
      ?著作權歸作者所有:來自51CTO博客作者慕楓技術筆記的原創作品,請聯系作者獲取轉載授權,否則將追究法律責任
      Apollo配置中心如何實現配置熱發布
      https://blog.51cto.com/u_15474618/4905554
      ————————————————————————————————————————————————
      可參考:
      微服務架構~攜程Apollo配置中心架構剖析
      官方文檔

      posted @ 2024-08-18 15:02  wfxx  閱讀(162)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产乱妇乱子视频在播放| 亚洲国产成人va在线观看天堂| 丝袜美腿亚洲综合第一区| 日韩激情成人| 亚洲岛国成人免费av| 蜜桃臀av在线一区二区| 北岛玲中文字幕人妻系列| 国产成人精品永久免费视频 | 国产成人高清亚洲综合| 无码中文字幕av免费放| 日韩精品久久久肉伦网站| 亚洲国产精品男人的天堂| 亚洲aⅴ天堂av天堂无码麻豆| 亚洲欧洲国产综合aⅴ无码| 人妻少妇偷人无码视频| 久久亚洲精品11p| 在线免费观看毛片av| 久久婷婷五月综合色国产免费观看 | 免费无码VA一区二区三区| 人妻蜜臀久久av不卡| av亚洲一区二区在线| 国产日韩精品欧美一区灰| 国产美女久久久亚洲综合| 日韩精品国产二区三区| 久久天天躁狠狠躁夜夜av不卡| 久久中文字幕国产精品| 成年女人碰碰碰视频播放| 真人性囗交视频| 精品人妻午夜福利一区二区 | 99re6这里有精品热视频| 99中文字幕精品国产| 丰满人妻被黑人猛烈进入| 十八禁国产一区二区三区| 国产视频一区二区| 久久成人国产精品免费软件 | 国产精品综合在线免费看| 国产视频一区二区| 日韩精品一区二区三区激情| 欧美孕妇乳喷奶水在线观看 | 野花韩国高清电影| 日本乱一区二区三区在线|