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

“配置”也有架構演進?看完深有痛感

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

一、緣起

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

站點應用會調用服務

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

對于同一個服務,它有多個上游調用。為了保證高可用,一個底層服務往往是若干個節點形成一個集群提供服務。

用戶中心服務user-service有三個節點

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

那么問題來了,當服務集群增減節點的時候,是否存在“反向依賴”,是否“耦合”,是否上游調用方需要修改配置重啟,是否能做到上游無感知,即“配置的架構變遷”,是今天需要討論的問題。

二、配置私藏

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

“配置私藏”是配置文件架構的最初級階段

如上圖:

1)用戶中心user-service有ip1/ip2/ip3三個節點

2)service1調用了用戶中心,它有一個專屬配置文件s1.conf,里面配置了us的集群是ip1/ip2/ip3

3)service2也調用了用戶中心,同理有個配置文件s2.conf,記錄了us集群是ip1/ip2/ip3

4)web2也調用了用戶中心,同理w2.conf,配置了us集群是ip1/ip2/ip3

是不是很熟悉?

沒錯,絕大部分公司,初期都是這么玩的。

1. 配置私藏架構的缺點是什么呢?

配置私藏架構的缺點

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

1)運維檢測出ip1節點的硬盤性能下降,通知研發未來要將ip1節點下線

2)由于5月8日要做大促運營活動,未來流量會激增,研發準備增加兩個節點ip4和ip5

2. 此時要怎么做呢?

配置私藏架構的缺點

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

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

問題一:調用方很痛,容量變化的是你,憑啥修改配置重啟的是我?這是一個典型的“反向依賴”架構設計,上下游通過配置耦合,值得優化(特別是上層服務,ta依賴的服務很多的時候,可能每周都有類似的配合重啟需求)。

問題二:服務方很痛,ta不知道有多少個上游調用了自己(特別是底層基礎服務,像用戶中心這種,調用ta的上游很多),往往只能通過以下方式來定位上游:

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

(似曾相識的請轉發=_=)

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

三、全局配置

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

全局配置文件

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

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

這么做的好處:

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

不足:

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

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

自動流量遷移

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

1)文件監控組件FileMonitor

作用是監控文件的變化,起一個timer,定期監控文件的ModifyTime或者md5就能輕松實現,當文件變化后,實施回調。

2)動態連接池組件DynamicConnectionPool

“連接池組件”是RPC-client中的一個子組件,用來維護與多個RPC-server節點之間的連接。所謂“動態連接池”,是指連接池中的連接可以動態增加和減少(用鎖來互斥或者線程安全的數據結構很容易實現)。

這兩個組件完成后:

1)一旦全局配置文件變化,文件監控組件實施回調

2)如果動態連接池組件發現配置中減少了一些節點,就動態的將對應連接銷毀,如果增加了一些節點,就動態建立連接,自動完成下游節點的增容與縮容。

四、配置中心

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

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

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

等需求便難以實現,怎么辦,可以采用“配置中心”來解決。

配置中心

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

1)整個配置中心子系統由zk、conf-center服務,DB配置存儲與,conf-web配置后臺組成

2)所有下游服務的配置,通過后臺設置在配置中心里

3)所有上游需要拉取配置,需要去配置中心注冊,拉取下游服務配置信息(ip1/ip2/ip3)

“全局配置”與“配置中心”的架構圖

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

4)conf-web配置后臺進行設置,新增ip4/ip5,減少ip1

5)conf-center服務將變更的配置推送給已經注冊關注相關配置的調用方

6)結合動態連接池組件,完成自動的擴容與縮容

配置中心的好處:

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

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

不足:系統復雜度相對較高,對配置中心的可靠性要求較高,一處掛全局掛。

五、總結

1. 解決什么問題?

  • 配置導致系統耦合,架構反向依賴。

2. 什么痛點?

  • 上游痛:擴容的是下游,改配置重啟的是上游
  • 下游痛:不知道誰依賴于自己

3. 配置架構如何演進?

  • 一、配置私藏
  • 二、全局配置文件
  • 三、配置中心

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

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

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

2023-02-09 07:38:39

配置中心架構組件

2024-03-06 11:22:33

架構演進技巧

2023-11-14 20:51:08

2015-12-02 18:11:06

百度地圖/地圖軟件

2015-12-09 15:16:03

架構師京東架構

2010-11-15 17:23:09

網絡架構

2010-11-18 11:44:27

廣域網優化網絡拓撲H3C

2021-10-08 09:57:38

Java開發架構

2024-06-05 12:03:43

微服務架構場景

2023-12-30 08:27:13

2016-03-15 16:24:47

集群調度框架演進

2023-05-16 08:01:13

架構網站演進

2019-09-16 15:30:51

2014-10-09 15:52:42

ADC

2021-12-27 08:04:49

架構網站高并發

2022-06-02 08:37:10

架構DDDMVC

2018-11-29 09:36:45

架構系統拆分結構演變

2009-11-26 17:21:38

智能彈性架構技術

2024-11-14 08:08:14

2023-12-11 21:52:52

數據中心架構數字時代
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久国产精品偷 | 日本二区 | 中文字幕电影在线观看 | 91人人看 | 日韩欧美在 | 免费看一级毛片 | 久草青青草| 国产精品成人一区二区三区 | 国产精品视频在线免费观看 | 国产精品久久九九 | 成人影视网址 | 91精品国产综合久久久密闭 | 国产二区三区 | 国产三级大片 | 午夜精品一区二区三区在线视 | 无码日韩精品一区二区免费 | 国产视频一视频二 | 亚洲激情一区二区 | 精品欧美一区免费观看α√ | 欧美性大战xxxxx久久久 | 国产精品三级 | 一二区视频 | 精品福利在线视频 | 久久久久国产一区二区三区四区 | 成人欧美日韩一区二区三区 | 精品一区二区三区在线观看国产 | 91影院 | 成人无遮挡毛片免费看 | m豆传媒在线链接观看 | 国产1区| 日韩人体视频 | 在线播放日韩 | 91免费版在线观看 | 黄色男女网站 | 韩日一区二区 | 日韩精品一区二区在线观看 | 成人精品网 | 国产乱码精品1区2区3区 | 亚洲视频精品在线 | 国产欧美精品一区二区 | 福利一区在线观看 |