第六章 配置

2022-04-11 22:04:02 字數 2255 閱讀 9794

why 配置: 工程師往往無法預知可能發生的全部情況,因此可能產生變更的地方免去直接的**修改而進行配置預留。

3.1 本地配置

這些配置其實也屬於**部分,真正可以動態修改的配置應該是簡單的、易於理解的、易於修改的。

在單機時代,配置檔案就夠用了。運維工程師如果想修改配置,登入生產機器,用vim本文編輯,然後重啟應用,或者用定時任務從新載入配置檔案就可以生效。

3.2 配置集中化

伺服器增加導致運維工作量增加,分布式系統很難使用本地配置。採用集中化的方式,也就是散落在每台伺服器上運維操作集中於一點統一處理,然後程式通過遠端通訊或非同步訊息分發到各個伺服器。對系統配置進行修改是運維工程師的重要工作之一,所以對配置進行統一管理是大勢所趨。

配置中心: 集中管理各個系統配置服務。

分布式系統中,很多集中式系統無需關注的配置項也浮出水面,如限流、降級、灰度開關,資料來源容災的準備切換,負載均衡的路由策略等,

執行緒池和連線池的容量配置。

限流: 是指需要限制併發/請求量的場景(如秒殺等)。

灰度/金絲雀:

集中式配置存在的問題:

配置中心能解決上述問題,還能提供額外的便利:

3.3 配置中心和註冊中心

配置中心和註冊中心不同。註冊中心用於分布式系統的服務治理,多用於管理執行在當前集群中的服務的狀態,隨時動態更新。

3.4 讀效能

缺點:遠端呼叫導致效能下降;

配置中心的單點訪問能力以及單點故障;

解決方案: 快取。

集中式快取:配置資訊讀遠大於寫。每次讀取磁碟影響效能,快取到記憶體。

優點是:能訪問最新的資料,資料一致性好,提公升訪問效率;

缺點:沒有緩解配置中心的訪問壓力。

本地快取:客戶端快取,盡量訪問本地,只有在配置發生變化的時候才讀配置中心,更新快取。

優點是: 減少遠端呼叫,提公升訪問效率,緩解了配置中心壓力。缺點是資料存在多份,可能不一致。

補充:快取擊穿(快取穿透是指查詢乙個一定不存在的資料,由於快取是不命中時需要從資料庫查詢,查不到資料則不寫入快取,這將導 致這個不存在的資料每次請求都要到資料庫去查詢,造成快取穿透。在流量大時,可能db就掛掉了,要是有人利用不存在的key頻繁攻擊我們的應用,這就是漏洞),快取還有可能降低效率;

快取預熱:

快取基於乙個事實,原則:  二-八原則。 )

3.5 變更實時性

如果使用本地快取,資料就會存在多個副本,配置中心資料發生變更時,如果將配置資訊實時通知給應用客戶端。

業內兩種方式:監聽和實時同步。

監聽:配置中心的客戶端都需要與配置中心建立長連線。配置變化時,配置變化了,主動推送各個客戶端,客戶端更新快取。

優點是:實時性高;

缺點是: 長連線比較消耗系統資源。並且長連線一旦斷了,還要從新連線,容錯等。

保持長連線有效的方法是:心跳監聽服務,一旦發現連線不可用則銷毀連線建立新連線。為了保證應用客戶端能正確接收到資訊變更請求,也需要讓客戶端給予反饋,不反饋就一直發。客戶端要實現冪等性(在應答式通訊系統中,可能存存在多發請求的情況; 比如kafka重複消費資料)。 

實時同步:客戶端主動定時去詢問配置中心。如果發現快取和配置中心不一致,就更新快取。這樣使用短連線就可以。

優點:節省連線資源,降低服務中心的壓力。

缺點是:間隔時間長,則配置更新不及時;間隔時間短,則配置中心壓力過大,並且做很多無用功。

其他的方法還有設定快取失效時間。     

3.6 可用性

配置中心是存在單點故障的問題。

解決辦法:

服務冗餘:

1 基於主節點提供服務。

2 基於對等節點提供服務。  

快取:快取資料,提公升讀取配置資訊的效能,可以在配置中心節點全失效時提**急使用,也叫離線模式。缺點是快取更新不了了。     

3.7 資料一致性

分布式架構下,資料一致性如何保證,

一致性三種方案

第六章 網路配置

路由器的工作原理 1 路由器接收來自它連線的某個 的資料。2 路由器將資料向上傳遞。3 路由器檢查ip頭部中的目的位址,如果目的位址位於發出資料的那個網路,那麼路由器就放下被認為已經達到目的地的資料。4 如果資料要送往另乙個網路,那麼路由器就查詢路由表,以確定資料要 到的目的地。5 路由器確定哪個介...

mysql第六章 第六章 mysql日誌

第六章 mysql日誌 一 錯誤日誌 錯誤日誌的預設存放路徑是 mysql 存放資料的地方 hostname.err 1.修改錯誤日誌存放路徑 mysqld log error data mysql mysql.log 2.檢視配置命令 show variables like log error 3...

第六章 指標

1.多位元組資料的位址是在最左邊還是最右邊的位置,不同的機器有不同的規定,這也正是大端和小端的區別,位址也要遵從邊界對齊 2.高階語言的乙個特性就是通過名字而不是位址來訪問記憶體的位置,但是硬體仍然通過位址訪問記憶體位置 3.記憶體中的變數都是義序列的0或1的位,他們可以被解釋為整數或者其他,這取決...