写点什么

工具介绍 | 百度分布式配置中心 BRCC 正式开源

发布于: 2021 年 02 月 08 日
工具介绍 | 百度分布式配置中心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. 特性


  •  BRCC 提供统一界面集中式管理不同环境、不同产品线、不同工程的配置

  • 通过版本的复制,可以高效的完成新业务的配置


2)配置修改实时生效(热发布)

  • 默认 2 秒接收到最新的配置

  • 主动变更通知 


3)权限管理、角色隔离

  • 多级权限、多种角色细粒度管控(产品线、工程、环境),支持读写权限

  • 重要信息加密交互

  • Token 机制


4)多语言支持

  • 支持 Java、Go 客户端以 SDK 方式接入

  • 支持 OpenAPI 快速接入(不限定语言,只要支持 Http 协议即可)


5)可追溯

  • 操作轨迹可追踪

  • 历史配置可查询和回溯


6)缓存加持

  • 重要接口支持缓存开关配置


7)更轻量

  • 部署简单,目前强依赖的外部服务是 MySQL

  • 更聚焦:只关注配置相关的控制


8)查询更方便

  • 细粒度化到 key-value 配置项层级

  • 支持模糊匹配检索


04. 使用指南

       配置中心服务端依赖 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 小节。


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.未来规划


后续将会持续聚焦在配置服务能力的完善上,如对主流 RPC 框架和协议的支持、限流中间件的融合、主流序列化技术的支撑等。接下来我们还会更多的关注服务的性能和稳定性的优化升级,为业务提供更好的服务支撑。


06.贡献和反馈

1)项目开源地址

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

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


2)联系方式:

  • 如果您有任何意见或问题都可以提 issue 到 Github 或 Gitee,我们将及时为您解答。


更多资讯,欢迎关注百度开发者中心公众号。


用户头像

关注百度开发者中心,收获一手技术干货。 2018.11.12 加入

汇聚百度所有对外开放技术、平台和服务资源,提供全方位支持,助力开发者加速成功,实现开发者、消费者和百度三方共赢。https://developer.baidu.com/

评论

发布
暂无评论
工具介绍 | 百度分布式配置中心BRCC正式开源