百度分布式配置中心BRCC正式开源
“ 2021年02月,百度分布式配置中心BRCC,正式開源!”
01. 什么是BRCC
BRCC(better remote config center)是一個分布式配置中心,用于統一管理應用服務的配置信息,避免各類資源散落在各個項目中,簡化資源配置的維護成本。作為一種輕量級的解決方案,部署簡單,同時支持多環境、多版本、多角色的資源管理,可以在不改變應用源碼的情況下無縫切換和實時生效配置信息。
02. 技術架構
BRCC由三部分組成:管理端、服務端、SDK,其中:
1)管理端 :
前后端分離,后端基于Spring Boot 2.0開發,支持6個維度(產品、工程、環境、版本、分組、配置項)管理key-value格式的配置;支持細粒度的權限控制層級、操作軌跡等能力。安全易用,支持插件化的擴展輕松集成任何公司/組織的賬號管理系統。
2)服務端:
基于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進行投稿,優質文章將獲得豐厚獎勵和推廣資源。
總結
以上是生活随笔為你收集整理的百度分布式配置中心BRCC正式开源的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (文末有福利)口罩检测覆盖公有云、私有化
- 下一篇: san-hot-loader 应用及原理