Skip to content

Latest commit

 

History

History
221 lines (206 loc) · 7.26 KB

quick-start.md

File metadata and controls

221 lines (206 loc) · 7.26 KB

快速开始

部署brcc

    请点击《部署手册》查看如何部署brcc server端。假设管理端的地址是http://127.0.0.1:8080

登录管理端增加配置

登录管理端

访问 http://127.0.0.1:8080/#/login

登录界面

  • *初始安装的超管账号和密码admin/admin

增加产品线

    产品线入口, 产品线入口有3个,首页中的【全部产品线】、具体产品,个人信息菜单下拉框中的【我的产品线】如下图:

产品线入口

新建产品线 test。

产品线新建 新建后,点击test进入工程列表

增加工程

    进入工程列表后,点击"新建工程"按钮。 工程管理 新建工程 example,api密码设置为123456。新建后在工程列表界面点击"example"进入环境页面。

增加环境

点击"新增环境",增加一个新环境dev, 环境管理 点击dev,进入版本页面。

增加版本

新增环境 1.0,点击"1.0"进入分组页面。 版本管理

增加分组

新增分组 g1,点击"g1"进入配置页面。 分组管理

增加配置

增加3个配置:

a=5
b=34
c=xx13

配置管理

使用java-sdk

增加brcc依赖

创建一个通用的springboot应用,在pom文件中增加如下依赖:

<dependency>
    <groupId>com.baidu.mapp</groupId>
    <artifactId>brcc-sdk-starter</artifactId>
    <version>1.0.0</version>
</dependency>

brcc sdk starter的最好使用最新版本。brcc sdk starter

增加brcc的配置

在application.yml增加brcc的配置

rcc:
  cc-server-url: http://127.0.0.1:8080/ #这里brcc server的地址
  project-name: example                 #工程名
  cc-password: 123456                   #工程的api密码
  env-name: dev                         #环境名称
  cc-version-name: 1.0                  #版本名称
  log-properties: true                  #是否打印配置
  enable-update-callback: true          #是否启用自动更新
  enable-interrupt-service: true        #第一次加载工程api密码错误时是否中断服务

检查配置

启动应用, 在日志中检查是否有打印类似如下信息:

a=5
b=34 
c=xx13 

使用配置

拉取配置成功后,既可通过spring的placeholder能力在各种注解中使用这些配置,如:

@Value("${a}")
int a = 0;

@Value("${b}")
long b = 0;

@Value("${c}")
String c;

使用go-sdk

brcc-go-sdk代码库地址

https://github.com/baidu/brcc/tree/main/brcc-go-sdk

brcc初始化

使用

import (
    brcc github.com/baidu/brcc/brcc-go-sdk
)
1) 通过toml文件初始化brcc客户端

配置示例

serverUrl = "brcc.baidu-int.com"
projectName = "brcc-go-client"
envName = "debug"
versionName = "1.0"
apiPassword = "123456"
enableCallback = true
callbackInterval = 300
requestTimeout = 5
enableCache = true
cacheDir = "/tmp/brcc"

参数说明

配置参数 类型 是否必填 配置说明
serverUrl string brcc服务域名
projectName string brcc工程名
envName string brcc环境名
versionName string 版本号
apiPassword string 工程API密码
enableCallback bool 是否开启配置更新回调, 默认值false关闭
callbackInterval int 配置更新回调时间间隔, 单位秒, 默认值300秒
requestTimeout int brcc服务接口访问超时时间, 单位秒, 默认值5秒
enableCache bool 是否开启文件缓存, 在远程获取配置失败时从本地缓存中读取配置, 默认值false关闭
cacheDir string 文件缓存位置, 默认值 /tmp/brcc
初始化
// 使用toml配置文件初始化brcc客户端, name为配置文件路径
err := brcc.StartWithConfFile(name)
if err != nil {
	panic(fmt.Sprintf("init brcc error: %v", err.Error()))
}
2) 通过代码配置初始化brcc客户端

初始化示例

brccConf := &brcc.Conf{
    ProjectName:         "brcc-go-client",
    EnvName:             "debug",
    ServerUrl:           "brcc.baidu-int.com",
    ApiPassword:         "123456",
    VersionName:         "1.0",
    EnableCallback:      true,
    CallbackIntervalInt: 300,
    RequestTimeoutInt:   5,
    EnableCache:         true,
    CacheDir:            "/tmp/brcc",
}

err := brcc.StartWithConf(ctx, brccConf)
if err != nil {
    panic(fmt.Sprintf("init brcc error: %v", err.Error()))
}

brcc获取远程配置

// 获取远程配置
brcc.GetValue(key, defaultValue)
// 读取所有的key
brcc.GetAllKeys()

brcc注入

type Test struct {
    A bool   `brcc:"test.a"`
    B int    `brcc:"test.b"`
    C string `brcc:"test.c"`
}

tv := &Test{}
// 注入
brcc.Bind(tv)

brcc监听配置变更

使用示例

type DemoSet struct {
    data map[string]string
}

func (d *DemoSet) Update(ce *brcc.ChangeEvent) {
    //建议defer捕获协程panic处理
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("watch update callback panic")
        }
    }()
    for key, change := range ce.Changes {
        if change.ChangeType == brcc.ADD || change.ChangeType == brcc.MODIFY {
            d.data[key] = change.NewValue
        }
        if change.ChangeType == brcc.DELETE {
            delete(d.data, key)
        }
    }
}

d = DemoSet{data: map[string]string{}}
brcc.Watch(d.Update)