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>
<dependencies><dependency><groupId>com.tencent.polaris</groupId><artifactId>polaris-all</artifactId></dependency></dependencies>
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
import com.tencent.polaris.factory.api.DiscoveryAPIFactory;public static void main(String[] args) throws Exception {ProviderAPI providerAPI = DiscoveryAPIFactory.createProviderAPI();}
public class InstanceRegisterRequest extends CommonProviderBaseEntity {// ...}
InstanceRegisterRequest结构体后,只需要调用ProviderAPI.RegisterInstance方法即可完成实例注册,并且 RegisterInstance方法内部会自动维护实例的心跳上报。InstanceRegisterResponse registerResp = providerAPI.registerInstance(registerRequest)
import com.tencent.polaris.factory.api.DiscoveryAPIFactory;public static void main(String[] args) throws Exception {ConsumerAPI consumerAPI = DiscoveryAPIFactory.createConsumerAPI();}
GetAllInstancesRequest request = new GetAllInstancesRequest();// 设置服务命名空间request.setNamespace(String namespace);// 设置服务名称request.setService(String service);// 设置超时时间request.setTimeoutMs(long timeoutMs);// 调用 ConsumerAPI 执行该请求consumerAPI.getAllInstance(request);
GetInstancesRequest request = new GetInstancesRequest();// 设置服务命名空间request.setNamespace(String namespace);// 设置服务名称request.setService(String service);// 可选,设置主调服务信息,只用于路由规则匹配SourceService serviceInfo = new SourceService();// 设置主调服务命名空间serviceInfo.setNamespace(String namespace);// 设置主调服务名称serviceInfo.setService(String service);// 设置主调方的请求标签信息serviceInfo.setArguments(Set<RouteArgument> arguments);request.setServiceInfo(serviceInfo);// 设置超时时间request.setTimeoutMs(long timeoutMs);// 调用 ConsumerAPI 执行该请求consumerAPI.getInstances(request);
GetOneInstanceRequest.ServiceInfo.Metadata属性,会触发自定义路由流程。GetOneInstanceRequest.Metadata属性,会触发元数据路由流程。public class Criteria {/*** 指定负载均衡策略*/private String lbPolicy;/*** 一致性hash的key*/private String hashKey;}GetOneInstanceRequest request = new GetOneInstanceRequest();// 设置服务命名空间request.setNamespace(String namespace);// 设置服务名称request.setService(String service);// 可选,元数据信息,仅用于dstMetadata路由插件的过滤request.setMetadata(Map<String, String> metadata);// 可选,设置元数据路由兜底措施// 当前支持的元数据路由兜底措施如下// - 默认不降级: METADATAFAILOVERNONE("metadataFailoverNone")// - 降级返回所有节点: METADATAFAILOVERALL("metadataFailoverAll")// - 返回不包含元数据路由key的节点: METADATAFAILOVERNOTKEY("metadataFailoverNoKey")request.setMetadataFailoverType();// 可选,对应自定义路由规则中请求标签中的方法(Method)request.setMethod(String method);// 如果需要走 Hash 负载均衡的话,需要设置Criteria criteria = new Criteria();request.setCriteria(criteria);// 可选,设置主调服务信息,只用于路由规则匹配SourceService serviceInfo = new SourceService();// 设置主调服务命名空间serviceInfo.setNamespace(String namespace);// 设置主调服务名称serviceInfo.setService(String service);// 设置主调方的请求标签信息serviceInfo.setArguments(Set<RouteArgument> arguments);request.setServiceInfo(serviceInfo);// 设置超时时间request.setTimeoutMs(long timeoutMs);// 调用 ConsumerAPI 执行该请求consumerAPI.getOneInstance(request);
文档反馈