操作场景
本文介绍在本地开发 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>
说明:
2. 引入 polaris starter
<dependencies><dependency><groupId>com.tencent.polaris</groupId><artifactId>polaris-all</artifactId></dependency></dependencies>
步骤2:添加北极星配置文件 polaris.yaml
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. 初始化 RouterAPI 实例
import com.tencent.polaris.factory.api.RouterAPIFactory;public static void main(String[] args) throws Exception {RouterAPI routerAPI = RouterAPIFactory.createRouterAPI();}
2. 注册请求体,设置执行负载均衡的实例列表、负载均衡策略等信息。
public class Criteria {// 一致性hash的keyprivate String hashKey;}ProcessLoadBalanceRequest request = new ProcessLoadBalanceRequest();// 设置需要参与负载均衡的服务实例request.setDstInstances(ServiceInstances dstInstances);// 设置负载均衡策略// 当前支持的负载均衡策略如下// - 权重随机负载均衡: weightedRandom// - 权重一致性负载均衡: ringHashrequest.setLbPolicy(String lbPolicy);// 如果需要走 Hash 负载均衡的话,需要设置Criteria criteria = new Criteria();request.setCriteria(criteria);
3. 负载均衡
您在使用
ConsumerAPI.getAllInstances
或者ConsumerAPI.getInstances
获取到服务实例列表后,完成ProcessLoadBalanceRequest
初始化,只需要调用RouterAPI.processLoadBalance
方法即可完成负载均衡。ProcessLoadBalanceResponse resp = routerAPI.processLoadBalance(request)