配置管理

最近更新时间:2024-01-25 16:42:12

我的收藏

操作场景

本文介绍在本地开发 Java 应用,通过 polaris-sdk 的方式接入 TSE 治理中心(北极星网格),并实现配置分组管理功能。

前提条件

在开发前,请确保您已经下载并安装了 Java 和 Maven。

操作步骤

步骤1:引入北极星依赖

1. 引入 polaris sdk 依赖

修改应用根目录下的pom.xml,为polaris-java添加dependencyManagement
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.tencent.polaris</groupId>
<artifactId>polaris-dependencies</artifactId>
<version>${version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
说明:
polaris-sdk 版本信息请参见:版本信息

2. 引入 polaris starter

<dependencies>
<dependency>
<groupId>com.tencent.polaris</groupId>
<artifactId>polaris-all</artifactId>
</dependency>
</dependencies>

步骤2:添加北极星配置文件 polaris.yml

1. 在项目的 main/resources 目录下创建 polaris.yml 文件用于初始化 polaris-java SDK。
2. 在 polaris.yml 文件中配置应用名、polaris(北极星)服务端地址等信息。服务端地址详细参见:引擎管理 > 客户端访问地址
global:
serverConnectors:
- id: polaris
protocol: grpc
addresses:
# 地址需要替换成您创建的北极星引擎的客户端访问地址。
- 127.0.0.1:8091
#描述: 监控及日志数据上报相关配置
statReporter:
#描述: 是否启用上报
enable: true
plugin:
prometheus:
type: push
# 描述: 设置 pushgateway 的地址, 仅 type == push 时生效
# 地址需要替换成您创建的北极星引擎的客户端访问地址。
address: 127.0.0.1:9091
#描述:设置metric数据推送到pushgateway的执行周期
#范围:[1s:...],默认值:10s
pushInterval: 10s
更多 polaris.yml 配置信息,请参见 default-config.yml

步骤3:应用开发

1.获取配置

(1)初始化 ConfigFileService SDK 实例
import com.tencent.polaris.configuration.factory.ConfigFileServiceFactory;

public static void main(String[] args) throws Exception {
ConfigFileService configFileService = ConfigFileServiceFactory.createConfigFileService();
}
(2)获取配置文件
// 获取特定远程的配置文件
ConfigFile getConfigFile(String namespace, String fileGroup, String fileName);

// 获取特定远程的配置文件
ConfigFile getConfigFile(ConfigFileMetadata configFileMetadata);
(3)监听配置文件
//获取配置文件
ConfigFile configFile = configFileService.getConfigFile(namespace, fileGroup, fileName);
//添加变更监听器
configFile.addChangeListener(new ConfigFileChangeListener() {
@Override
public void onChange(ConfigFileChangeEvent event) {
}
});
(4)监听配置分组下的已发布文件列表变化
获取到目标配置分组后, 调用配置分组的 addChangeListener 方法监听改配置分组下已发布配置文件列表的变化。
说明:
需要更新 polaris-java 的版本至 v1.14.0 及以上版本。
ConfigFileGroup configFileGroup = configFileService.getConfigFileGroup(namespace, fileGroup);
if (configFileGroup != null) {
configFileGroup.addChangeListener(new ConfigFileGroupChangeListener() {
@Override
public void onChange(ConfigFileGroupChangedEvent event) {
Utils.print(event.toString());
}
});
}
ConfigFileGroupChangedEvent 数据结构
public class ConfigFileGroupChangedEvent {
// 配置分组自身元数据信息
private final ConfigFileGroupMetadata configFileGroupMetadata;
// 当前配置分组下的最新已发布的配置文件列表
private final List<ConfigFileMetadata> configFileMetadataList;

public ConfigFileGroupChangedEvent(ConfigFileGroupMetadata configFileGroupMetadata, List<ConfigFileMetadata> configFileMetadataList) {
this.configFileGroupMetadata = configFileGroupMetadata;
this.configFileMetadataList = configFileMetadataList;
}

public ConfigFileGroupMetadata getConfigFileGroupMetadata() {
return configFileGroupMetadata;
}

public List<ConfigFileMetadata> getConfigFileMetadataList() {
return configFileMetadataList;
}

@Override
public String toString() {
return "ConfigFileGroupChangedEvent{" +
"configFileGroupMetadata=" + configFileGroupMetadata +
", configFileMetadataList=" + configFileMetadataList +
'}';
}
}

2.操作配置

(1)初始化 ConfigFilePublishService SDK 实例。
import com.tencent.polaris.configuration.factory.ConfigFileServicePublishFactory;

public static void main(String[] args) throws Exception {
ConfigFilePublishService configFilePublishService = ConfigFileServicePublishFactory.createConfigFilePublishService();
}
(2)操作配置文件:创建、修改、发布配置文件。
// 创建配置文件
void createConfigFile(String namespace, String fileGroup, String fileName, String content);

// 创建配置文件
void createConfigFile(ConfigFileMetadata configFileMetadata, String content);

// 修改配置文件
void updateConfigFile(String namespace, String fileGroup, String fileName, String content);

// 修改配置文件
void updateConfigFile(ConfigFileMetadata configFileMetadata, String content);

// 发布配置文件
void releaseConfigFile(String namespace, String fileGroup, String fileName);

// 发布配置文件
void releaseConfigFile(ConfigFileMetadata configFileMetadata);