百度分布式配置中心BRCC正式开源
“ 2021年02月,百度分布式配置中心BRCC,正式開源!”
01. 什么是BRCC
BRCC(better remote config center)是一個(gè)分布式配置中心,用于統(tǒng)一管理應(yīng)用服務(wù)的配置信息,避免各類資源散落在各個(gè)項(xiàng)目中,簡化資源配置的維護(hù)成本。作為一種輕量級(jí)的解決方案,部署簡單,同時(shí)支持多環(huán)境、多版本、多角色的資源管理,可以在不改變應(yīng)用源碼的情況下無縫切換和實(shí)時(shí)生效配置信息。
02. 技術(shù)架構(gòu)
BRCC由三部分組成:管理端、服務(wù)端、SDK,其中:
1)管理端 :
前后端分離,后端基于Spring Boot 2.0開發(fā),支持6個(gè)維度(產(chǎn)品、工程、環(huán)境、版本、分組、配置項(xiàng))管理key-value格式的配置;支持細(xì)粒度的權(quán)限控制層級(jí)、操作軌跡等能力。安全易用,支持插件化的擴(kuò)展輕松集成任何公司/組織的賬號(hào)管理系統(tǒng)。
2)服務(wù)端:
基于spring boot 2.0開發(fā),打包后可以直接運(yùn)行,支持配置的分發(fā)、更新推送。
3)SDK:
支持java、go等多種開發(fā)語言和開發(fā)框架集成,支持spring注解、配置變更監(jiān)聽和刷新,零業(yè)務(wù)侵入性,低門檻集成(提供spring boot starter方式接入)。
03. 特性
1)統(tǒng)一管理不同環(huán)境、不同產(chǎn)品線的配置
- BRCC提供統(tǒng)一界面集中式管理不同環(huán)境、不同產(chǎn)品線、不同工程的配置
- 通過版本的復(fù)制,可以高效的完成新業(yè)務(wù)的配置
2)配置修改實(shí)時(shí)生效(熱發(fā)布)
- 默認(rèn)2秒接收到最新的配置
- 主動(dòng)變更通知
3)權(quán)限管理、角色隔離
- 多級(jí)權(quán)限、多種角色細(xì)粒度管控(產(chǎn)品線、工程、環(huán)境),支持讀寫權(quán)限
- 重要信息加密交互
- Token機(jī)制
4)多語言支持
- 支持Java、Go客戶端以SDK方式接入
- 支持OpenAPI快速接入(不限定語言,只要支持Http協(xié)議即可)
5)可追溯
- 操作軌跡可追蹤
- 歷史配置可查詢和回溯
6)緩存加持
- 重要接口支持緩存開關(guān)配置
7)更輕量
- 部署簡單,目前強(qiáng)依賴的外部服務(wù)是MySQL
- 更聚焦:只關(guān)注配置相關(guān)的控制
8)查詢更方便
- 細(xì)粒度化到key-value配置項(xiàng)層級(jí)
- 支持模糊匹配檢索
04. 使用指南
1)準(zhǔn)備工作
配置中心服務(wù)端依賴java環(huán)境、Mysql數(shù)據(jù)庫、Redis(可選,如需開啟緩存功能需要)
- Java環(huán)境,jdk版本1.8+
- MySQL:5.6+
- Redis:3.2+
2)下載編譯和運(yùn)行
下載代碼后,進(jìn)入根目錄,直接運(yùn)行sh compile.sh
備注:注意觀察編譯是否有報(bào)錯(cuò)
編譯完成后,進(jìn)入運(yùn)行階段:
在項(xiàng)目根目錄下,編輯start.sh執(zhí)行腳本,分別指定好環(huán)境參數(shù)
SERVER_PORT=web服務(wù)監(jiān)聽端口
REDIS_HOST=Redis服務(wù)地址
REDIS_PORT=Redis服務(wù)端口
DB_HOST=數(shù)據(jù)庫地址
DB_PORT=數(shù)據(jù)庫端口
DB_USERNAME=數(shù)據(jù)庫用戶名
DB_PASSWORD=數(shù)據(jù)庫密碼
保存后執(zhí)行:sh start.sh
管理端訪問入口 https://ip:port 其中IP為服務(wù)啟動(dòng)的IP,Port為web服務(wù)監(jiān)聽端口,例如 http://localhost:8080/
3) 管理端使用
管理端可以支持用戶登錄操作創(chuàng)建產(chǎn)品線、工程、環(huán)境、版本、分組、配置項(xiàng),以及各種粒度的權(quán)限讀寫,詳細(xì)使用請(qǐng)參見下文06小節(jié)。
4) SDK接入
Step1:在代碼中引入brcc-sdk-starter,maven坐標(biāo)如下
<dependency><groupId>com.baidu.mapp</groupId><artifactId>brcc-sdk-starter</artifactId><version>${rcc-version}</version></dependency>Step2:啟動(dòng)參數(shù)配置
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: 配置中心服務(wù)地址
rcc.project-name: 請(qǐng)求的工程名稱
rcc.cc-password: 請(qǐng)求的工程ApiPassword
rcc.env-name: 請(qǐng)求的環(huán)境名稱
rcc.cc-version-name: 請(qǐng)求的版本名稱
rcc.log-properties: 是否打印配置
rcc.enable-update-callback: 是否啟用自動(dòng)更新
05.未來規(guī)劃
BRCC目前主要針對(duì)配置的核心能力,完成了服務(wù)治理常用的功能要素,以更輕量方式提供給業(yè)務(wù)方使用。
后續(xù)將會(huì)持續(xù)聚焦在配置服務(wù)能力的完善上,如對(duì)主流RPC框架和協(xié)議的支持、限流中間件的融合、主流序列化技術(shù)的支撐等。接下來我們還會(huì)更多的關(guān)注服務(wù)的性能和穩(wěn)定性的優(yōu)化升級(jí),為業(yè)務(wù)提供更好的服務(wù)支撐。
06.貢獻(xiàn)和反饋
項(xiàng)目開源地址**
【Github地址】:https://github.com/baidu/brcc
【Gitee地址】:https://gitee.com/baidu/brcc
期待你的加入
百度開發(fā)者中心已開啟征稿模式,歡迎開發(fā)者登錄developer.baidu.com進(jìn)行投稿,優(yōu)質(zhì)文章將獲得豐厚獎(jiǎng)勵(lì)和推廣資源。
總結(jié)
以上是生活随笔為你收集整理的百度分布式配置中心BRCC正式开源的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (文末有福利)口罩检测覆盖公有云、私有化
- 下一篇: san-hot-loader 应用及原理