自己寫分布式配置中心(上篇) 單機模式

2021-09-03 02:24:38 字數 936 閱讀 9174

什麼是「訂閱-發布模式」?

訂閱-發布模式定義了物件之間的一種一對多的依賴關係,當乙個物件的狀態發生改變時,所有依賴它的物件都可以得到通知。

訂閱-發布模式和觀察者模式概念相似,但在訂閱-發布模式中,訂閱者和發布者之間多了一層中介軟體:乙個被抽象出來的資訊排程中心。

但其實沒有必要太深究 2 者區別,因為《head first 設計模式》這本經典書都寫了:發布+訂閱=觀察者模式。其核心思想是狀態改變和發布通知。在此基礎上,根據語言特性,進行實現即可。

自己寫分布式配置中心-單機模式/

本篇我們講講如何實現乙個分布式配置中心服務。

由於該專案實現起來較為複雜,因此分為上下兩篇講解,上篇為單機模式,下篇為分布式模式。話不多說,我們進入正文。

說說配置中心

在編碼之前,我們簡單介紹一下什麼是分布式配置中心,以及它是為了解決什麼問題而出現的。

傳統專案中,我們使用配置檔案來進行可變引數的動態配置,通過改動配置檔案並重啟應用的方式達到「不改**而變更程式行為」的目的。

專案規模小,服務數量少的時候,這種方式還是可堪一用的,當專案規模變大,服務數量上公升的時候,停機修改配置就成為一件難以忍受的事情。試想,我們為了修改配置檔案,首先要關停部分機器,修改完成還需要手動重啟,如果修改有誤還需要返工。這對運維而言,簡直就是折磨。

因此,配置中心,或者說配置服務就應運而生了。最直接的變化就是,修改配置無需重啟,配置能夠動態生效,減少了運維成本和壓力。

不僅如此,引入較為成熟的配置中心,能夠在全域性的視角,對不同業務線的不同模組的配置進行統一管理,將分散在各處的配置集中管理,從根源上規避了「配置地獄」的情況的出現。

配置中心不僅減少了開發運維的壓力,對運營而言也方便了需求的快速實現及業務目標的靈活變更,它是分布式/微服務架構中的必備的基礎設施。

業界較為流行的配置中心實現如下,讀者可以根據自己的需要,結合官方文件及業界的最佳實踐,靈活的選擇適合自己的配置中心實現。

分布式配置中心

部署演進 單機配置檔案部署 當隨著業務的使用者量增加,通常我們會把我們的服務進行多機器 集群 部署。這時候,配置的發布就變成了如下,多機器配置 1.2 分配式配中心 傳統配置的方式已經暴露出了很多問題,其餘的諸如 歷史版本管理,許可權控制,安全性等等問題,是傳統的配置檔案無法處理的 隨著業務的發展 ...

分布式配置中心

1 話題引入 如果配置檔案全部放在resources目錄下,管理起來非常複雜,所以採用分布式配置中心,放在git上 2 產生背景 在微服務中如果使用傳統的方式管理配置檔案,配置檔案管理器非常複雜 如果生產環境配置檔案,可能需要發生改變的時候,重新打war,重新讀取配置資訊在jvm記憶體中 3 什麼是...

springcloud分布式配置中心

本文是對內容做些應用 1.bootstrap.properties檔案內容 必須與配置中心中的檔案字首一致 開啟健康檢查 需要spring boot starter actuator依賴 eureka.client.healthcheck.enabled true 續約更新時間間隔 預設30秒 eu...