百度分佈式配置中心BRCC正式開源

「 2021年02月,百度分佈式配置中心BRCC,正式開源!」java

01. 什麼是BRCC

BRCC(better remote config center)是一個分佈式配置中心,用於統一管理應用服務的配置信息,避免各種資源散落在各個項目中,簡化資源配置的維護成本。做爲一種輕量級的解決方案,部署簡單,同時支持多環境、多版本、多角色的資源管理,能夠在不改變應用源碼的狀況下無縫切換和實時生效配置信息。git

02. 技術架構

圖片
BRCC由三部分組成:管理端、服務端、SDK,其中:github

1)管理端 :web

先後端分離,後端基於Spring Boot 2.0開發,支持6個維度(產品、工程、環境、版本、分組、配置項)管理key-value格式的配置;支持細粒度的權限控制層級、操做軌跡等能力。安全易用,支持插件化的擴展輕鬆集成任何公司/組織的帳號管理系統。spring

2)服務端:sql

基於spring boot 2.0開發,打包後能夠直接運行,支持配置的分發、更新推送。數據庫

3)SDK:後端

支持java、go等多種開發語言和開發框架集成,支持spring註解、配置變動監聽和刷新,零業務侵入性,低門檻集成(提供spring boot starter方式接入)。緩存

03. 特性

1)統一管理不一樣環境、不一樣產品線的配置安全

  • BRCC提供統一界面集中式管理不一樣環境、不一樣產品線、不一樣工程的配置
  • 經過版本的複製,能夠高效的完成新業務的配置

2)配置修改實時生效(熱發佈)

  • 默認2秒接收到最新的配置
  • 主動變動通知

3)權限管理、角色隔離

  • 多級權限、多種角色細粒度管控(產品線、工程、環境),支持讀寫權限
  • 重要信息加密交互
  • Token機制

4)多語言支持

  • 支持Java、Go客戶端以SDK方式接入
  • 支持OpenAPI快速接入(不限定語言,只要支持Http協議便可)

5)可追溯

  • 操做軌跡可追蹤
  • 歷史配置可查詢和回溯

6)緩存加持

  • 重要接口支持緩存開關配置

7)更輕量

  • 部署簡單,目前強依賴的外部服務是MySQL
  • 更聚焦:只關注配置相關的控制

8)查詢更方便

  • 細粒度化到key-value配置項層級
  • 支持模糊匹配檢索

04. 使用指南

1)準備工做

配置中心服務端依賴java環境、Mysql數據庫、Redis(可選,如需開啓緩存功能須要)

  • Java環境,jdk版本1.8+
  • MySQL:5.6+
  • Redis:3.2+

2)下載編譯和運行

下載代碼後,進入根目錄,直接運行sh compile.sh

備註:注意觀察編譯是否有報錯

編譯完成後,進入運行階段:

在項目根目錄下,編輯start.sh執行腳本,分別指定好環境參數

SERVER_PORT=web服務監聽端口

REDIS_HOST=Redis服務地址

REDIS_PORT=Redis服務端口

DB_HOST=數據庫地址

DB_PORT=數據庫端口

DB_USERNAME=數據庫用戶名

DB_PASSWORD=數據庫密碼

保存後執行:sh start.sh

管理端訪問入口 https://ip:port 其中IP爲服務啓動的IP,Port爲web服務監聽端口,例如 http://localhost:8080/

3) 管理端使用

管理端能夠支持用戶登陸操做建立產品線、工程、環境、版本、分組、配置項,以及各類粒度的權限讀寫,詳細使用請參見下文06小節。

4) SDK接入

Step1:在代碼中引入brcc-sdk-starter,maven座標以下

<dependency>

    <groupId>com.baidu.mapp</groupId>

    <artifactId>brcc-sdk-starter</artifactId>

    <version>${rcc-version}</version>

</dependency>

Step2:啓動參數配置

rcc:

cc-server-url: http://ip:port/

project-name: example

cc-password: 123456

env-name: dev

cc-version-name: 1.0

log-properties: true

enable-update-callback: true

rcc.cc-server-url: 配置中心服務地址

rcc.project-name: 請求的工程名稱

rcc.cc-password: 請求的工程ApiPassword

rcc.env-name: 請求的環境名稱

rcc.cc-version-name: 請求的版本名稱

rcc.log-properties: 是否打印配置

rcc.enable-update-callback: 是否啓用自動更新

05.將來規劃

BRCC目前主要針對配置的核心能力,完成了服務治理經常使用的功能要素,以更輕量方式提供給業務方使用。

後續將會持續聚焦在配置服務能力的完善上,如對主流RPC框架和協議的支持、限流中間件的融合、主流序列化技術的支撐等。接下來咱們還會更多的關注服務的性能和穩定性的優化升級,爲業務提供更好的服務支撐。

06.貢獻和反饋

項目開源地址**

【Github地址】:https://github.com/baidu/brcc

【Gitee地址】:https://gitee.com/baidu/brcc

期待你的加入

百度開發者中心已開啓徵稿模式,歡迎開發者登陸developer.baidu.com進行投稿,優質文章將得到豐厚獎勵和推廣資源。
在這裏插入圖片描述

相關文章
相關標籤/搜索