成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

互聯網架構,究竟為什么需要配置中心?

開發 開發工具 架構
配置中心是互聯網架構體系中很重要的一塊,但為什么會有配置中心,是不是一開始就要有配置中心,它究竟解決什么問題,這是今天要討論的問題。

配置中心是互聯網架構體系中很重要的一塊,但為什么會有配置中心,是不是一開始就要有配置中心,它究竟解決什么問題,這是今天要討論的問題。

隨著互聯網業務的越來越復雜,用戶量與流量越來越大,“服務化分層”是架構演進的必由之路。

如上圖,站點應用會調用服務,上游服務調用底層服務,依賴關系會變得非常復雜。

對于同一個服務:

(1)它往往有多個上游調用;

(2)為了保證高可用,它往往是若干個節點組成的集群提供服務;

如上圖,用戶中心服務user-service有三個節點,ip1/ip2/ip3對上游提供服務,任何一個節點當機,都不影響服務的可用性。

那么問題來了:

  • 調用方如何維護下游服務集群配置?
  • 當服務集群增減節點時,調用方是否有感知?

初期:“配置私藏”架構

“配置私藏”是配置的最初級階段,上游調用下游,每個上游都有一個專屬的私有配置文件,記錄被調用下游的每個節點配置信息。

如上圖:

  • 用戶中心user-service有ip1/ip2/ip3三個節點;
  • service1調用了用戶中心,它有一個專屬配置文件s1.conf,里面配置了us的集群是ip1/ip2/ip3;
  • service2也調用了用戶中心,同理有個配置文件s2.conf,記錄了us集群是ip1/ip2/ip3;
  • web2也調用了用戶中心,同理w2.conf,配置了us集群是ip1/ip2/ip3;

畫外音:是不是很熟悉?絕大部分公司,初期都是這么玩的。

“配置私藏”架構的缺點是什么呢?

來看一個容量變化的需求:

  • 運維檢測出ip1節點的硬盤性能下降,通知研發未來要將ip1節點下線;
  • 由于5月8日要做大促運營活動,未來流量會激增,研發準備增加兩個節點ip4和ip5;

此時要怎么做呢?

需要用戶中心的負責人通知所有上游調用者,修改“私藏”的配置,并重啟上游,連接到新的集群上去。在ip1上沒有流量之后,通知運維將ip1節點下線,以完成整個縮容擴容過程。

這種方案存在什么問題呢?

當業務復雜度較高,研發人數較多,服務依賴關系較復雜的時候,就沒這么簡單了。

問題一:調用方很痛,容量變化的是你,憑啥修改配置重啟的是我?這是一個典型的“反向依賴”架構設計,上下游通過配置耦合,不合理。

問題二:服務方很痛,ta不知道有多少個上游調用了自己,往往只能通過以下方式來定位上游:

  • 群里吼
  • 發郵件詢問
  • 通過連接找到ip,通過ip問運維,找到機器負責人,再通過機器負責人找到對應調用服務

畫外音:是不是似曾相識?

不管哪種方式,都很有可能遺漏,導致ip1一直有流量難以下線,ip4/ip5的流量難以均勻遷移過來。該如何優化呢?

中期:“全局配置”架構

架構的升級并不是一步到位的,先來用最低的成本來解決上述“修改配置重啟”的問題一。

“全局配置”架構:對于通用的服務,建立全局配置文件,消除配置私藏:

  • 運維層面制定規范,新建全局配置文件,例如/opt/global.conf;畫外音:如果配置較多,注意做好配置的垂直拆分。
  • 對于服務方,如果是通用的服務,集群信息配置在global.conf里;
  • 對于調用方,調用方禁止配置私藏,必須從global.conf里讀取通用下游配置;

全局配置有什么好處呢?

  • 如果下游容量變化,只需要修改一處配置global.conf,而不需要各個上游修改;
  • 調用方下一次重啟的時候,自動遷移到擴容后的集群上來了;
  • 修改成本非常小,讀取配置文件目錄變了而已;

全局配置有什么不足呢?

如果調用方一直不重啟,就沒有辦法將流量遷移到新集群上去了。

有沒有方面實現自動流量遷移呢?

答案是肯定的,只需要引入兩個并不復雜的組件,就能實現調用方的流量自動遷移:

  • 文件監控組件FileMonitor:作用是監控文件的變化,起一個timer,定期監控文件的ModifyTime或者md5就能輕松實現,當文件變化后,實施回調。
  • 動態連接池組件DynamicConnectionPool:“連接池組件”是RPC-client中的一個子組件,用來維護與多個RPC-server節點之間的連接。所謂“動態連接池”,是指連接池中的連接可以動態增加和減少。

畫外音:用鎖來互斥,很容易實現。

引入了這兩個組件之后:

  • 一旦全局配置文件變化,文件監控組件實施回調;
  • 如果動態連接池組件發現配置中減少了一些節點,就動態的將對應連接銷毀,如果增加了一些節點,就動態建立連接,自動完成下游節點的增容與縮容;

終版:“配置中心”架構

“全局配置”架構是一個能夠快速落地的,解決“修改配置重啟”問題的方案,但它仍然解決不了,服務提供方“不知道有多少個上游調用了自己”這個問題。

如果不知道多少上游調用了自己:

  • “按照調用方限流”
  • “繪制全局架構依賴圖”

等這類需求便難以實現,怎么辦?

“配置中心”架構能夠完美解決

對比“全局配置”與“配置中心”的架構圖,會發現配置由靜態的文件升級為動態的服務:

  • 整個配置中心子系統由zk、conf-center服務,DB配置存儲與,conf-web配置后臺組成;
  • 所有下游服務的配置,通過后臺設置在配置中心里;
  • 所有上游需要拉取配置,需要去配置中心注冊,拉取下游服務配置信息(ip1/ip2/ip3);

當下游服務需要擴容縮容時:

  • conf-web配置后臺進行設置,新增ip4/ip5,減少ip1;
  • conf-center服務將變更的配置推送給已經注冊關注相關配置的調用方;
  • 結合動態連接池組件,完成自動的擴容與縮容;

“配置中心”架構有什么好處呢?

  • 調用方不需要再重啟;
  • 服務方從配置中心中很清楚的知道上游依賴關系,從而實施按照調用方限流;
  • 很容易從配置中心得到全局架構依賴關系;

痛點一、痛點二同時解決。

“配置中心”架構有什么不足呢?

  • 一來,系統復雜度相對較高;
  • 二來,對配置中心的可靠性要求較高,一處掛全局掛。

總結

究竟要解決什么痛點?

  • 上游痛:擴容的是下游,改配置重啟的是上游;
  • 下游痛:不知道誰依賴于自己;總之,難以實施服務治理。

究竟如何解決上述痛點?

  • “配置私藏”架構;
  • “全局配置文件”架構;
  • “配置中心”架構;

知其然,知其所以然。

【本文為51CTO專欄作者“58沈劍”原創稿件,轉載請聯系原作者】

戳這里,看該作者更多好文

 

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2018-11-07 06:35:50

互聯網服務化高可用架構

2018-01-01 06:41:44

耦合互聯網架構配置中心

2016-09-22 15:01:59

微服務互聯網架構

2019-03-18 07:08:53

高可用互聯網架構分布式

2016-12-06 11:56:13

互聯網架構高可用

2017-01-11 21:40:03

互聯網架構高并發

2015-11-16 14:08:39

醫療行業互聯網

2021-08-27 08:44:52

MQ架構耦合

2017-12-26 15:52:31

MQ互聯網耦合

2017-05-19 10:01:53

互聯網

2015-08-24 10:34:21

云數據中心互聯網架構安全

2019-05-13 10:30:34

互聯網架構容量

2016-09-22 15:55:39

互聯網架構容量設計

2019-04-10 14:10:02

高并發分布式系統架構

2019-11-28 16:09:29

架構模板存儲

2022-06-09 08:01:43

秒殺系統互聯網架構

2022-09-16 10:14:41

消息順序性分布式架構

2022-08-22 15:29:16

數據中心容災備份

2016-09-22 14:22:53

互聯網

2019-02-22 09:12:33

微服務架構服務化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美视频 | 亚洲国产一区二区在线 | 日韩中文字幕在线观看 | 涩色视频在线观看 | 久久精品国内 | 欧美精品一区二区蜜桃 | 国产久| 免费黄色特级片 | 一级二级三级黄色 | 91视频官网 | 日韩伦理一区二区 | 国产黄色av网站 | 欧美日韩中 | 中文字幕第100页 | 亚洲综合在线播放 | 精品国产一区二区三区四区在线 | 欧美日韩一 | 成人国产在线视频 | 欧美性猛交一区二区三区精品 | 国产精品久久久久久久午夜 | 91精品国产高清一区二区三区 | 国内自拍第一页 | 99精品视频一区二区三区 | 天天综合久久 | 91精品国产91久久久久久丝袜 | 欧美日韩在线一区二区三区 | 精品国产综合 | 日本成人中文字幕 | 观看毛片| 中文字幕日韩一区 | 欧美日韩专区 | 亚洲精品国产偷自在线观看 | 亚洲日日操 | 日韩欧美中文 | 国产精品久久久久久久久污网站 | 精品免费观看 | 日日操夜夜操天天操 | 黄 色 毛片免费 | 日本精品久久久久久久 | 综合中文字幕 | 精品国产一区二区在线 |