操作场景
本文介绍在本地开发 Java 应用,通过 polaris-sdk 的方式接入 Polaris(北极星),并实现配置分组管理功能。
前提条件
在开发前,请确保您已经下载并安装了 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>
说明:
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: polarisprotocol: grpcaddresses:# 地址需要替换成您创建的北极星引擎的客户端访问地址。- 127.0.0.1:8091#描述: 监控及日志数据上报相关配置statReporter:#描述: 是否启用上报enable: trueplugin:prometheus:type: push# 描述: 设置 pushgateway 的地址, 仅 type == push 时生效# 地址需要替换成您创建的北极星引擎的客户端访问地址。address: 127.0.0.1:9091#描述:设置metric数据推送到pushgateway的执行周期#范围:[1s:...],默认值:10spushInterval: 10s
步骤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() {@Overridepublic void onChange(ConfigFileChangeEvent event) {}});
(4)监听配置分组下的已发布文件列表变化
获取到目标配置分组后, 调用配置分组的 addChangeListener 方法监听改配置分组下已发布配置文件列表的变化。
说明:
需要更新 polaris-java 的版本至 v1.14.0 及以上版本。
ConfigFileGroup configFileGroup = configFileService.getConfigFileGroup(namespace, fileGroup);if (configFileGroup != null) {configFileGroup.addChangeListener(new ConfigFileGroupChangeListener() {@Overridepublic 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;}@Overridepublic 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);