Search in sources :

Example 6 with InstanceRegisterRequest

use of com.tencent.polaris.api.rpc.InstanceRegisterRequest in project spring-cloud-tencent by Tencent.

the class PolarisServiceRegistry method register.

@Override
public void register(Registration registration) {
    if (StringUtils.isEmpty(registration.getServiceId())) {
        log.warn("No service to register for polaris client...");
        return;
    }
    // Register instance.
    InstanceRegisterRequest instanceRegisterRequest = new InstanceRegisterRequest();
    instanceRegisterRequest.setNamespace(polarisDiscoveryProperties.getNamespace());
    instanceRegisterRequest.setService(registration.getServiceId());
    instanceRegisterRequest.setHost(registration.getHost());
    instanceRegisterRequest.setPort(registration.getPort());
    instanceRegisterRequest.setWeight(polarisDiscoveryProperties.getWeight());
    instanceRegisterRequest.setToken(polarisDiscoveryProperties.getToken());
    instanceRegisterRequest.setRegion(staticMetadataManager.getRegion());
    instanceRegisterRequest.setZone(staticMetadataManager.getZone());
    instanceRegisterRequest.setCampus(staticMetadataManager.getCampus());
    if (null != heartbeatExecutor) {
        instanceRegisterRequest.setTtl(ttl);
    }
    instanceRegisterRequest.setMetadata(registration.getMetadata());
    instanceRegisterRequest.setProtocol(polarisDiscoveryProperties.getProtocol());
    instanceRegisterRequest.setVersion(polarisDiscoveryProperties.getVersion());
    try {
        ProviderAPI providerClient = polarisDiscoveryHandler.getProviderAPI();
        providerClient.register(instanceRegisterRequest);
        log.info("polaris registry, {} {} {}:{} {} register finished", polarisDiscoveryProperties.getNamespace(), registration.getServiceId(), registration.getHost(), registration.getPort(), staticMetadataManager.getMergedStaticMetadata());
        if (null != heartbeatExecutor) {
            InstanceHeartbeatRequest heartbeatRequest = new InstanceHeartbeatRequest();
            BeanUtils.copyProperties(instanceRegisterRequest, heartbeatRequest);
            // Start the heartbeat thread after the registration is successful.
            heartbeat(heartbeatRequest);
        }
    } catch (Exception e) {
        log.error("polaris registry, {} register failed...{},", registration.getServiceId(), registration, e);
        rethrowRuntimeException(e);
    }
}
Also used : ProviderAPI(com.tencent.polaris.api.core.ProviderAPI) InstanceRegisterRequest(com.tencent.polaris.api.rpc.InstanceRegisterRequest) ReflectionUtils.rethrowRuntimeException(org.springframework.util.ReflectionUtils.rethrowRuntimeException) PolarisException(com.tencent.polaris.api.exception.PolarisException) InstanceHeartbeatRequest(com.tencent.polaris.api.rpc.InstanceHeartbeatRequest)

Example 7 with InstanceRegisterRequest

use of com.tencent.polaris.api.rpc.InstanceRegisterRequest in project polaris-java by polarismesh.

the class RegisterExample method main.

public static void main(String[] args) throws Exception {
    InitResult initResult = ExampleUtils.initProviderConfiguration(args);
    String namespace = initResult.getNamespace();
    String service = initResult.getService();
    String host = initResult.getHost();
    int port = initResult.getPort();
    String token = initResult.getToken();
    try (ProviderAPI providerAPI = ExampleUtils.createProviderAPI(initResult.getConfig())) {
        InstanceRegisterRequest instanceRegisterRequest = new InstanceRegisterRequest();
        instanceRegisterRequest.setNamespace(namespace);
        instanceRegisterRequest.setService(service);
        instanceRegisterRequest.setHost(host);
        instanceRegisterRequest.setPort(port);
        instanceRegisterRequest.setToken(token);
        if (initResult.getTtl() > 0) {
            instanceRegisterRequest.setTtl(initResult.getTtl());
        }
        InstanceRegisterResponse instanceRegisterResponse = providerAPI.register(instanceRegisterRequest);
        System.out.println("response after register is " + instanceRegisterResponse);
    }
}
Also used : ProviderAPI(com.tencent.polaris.api.core.ProviderAPI) InitResult(com.tencent.polaris.discovery.example.utils.ExampleUtils.InitResult) InstanceRegisterRequest(com.tencent.polaris.api.rpc.InstanceRegisterRequest) InstanceRegisterResponse(com.tencent.polaris.api.rpc.InstanceRegisterResponse)

Example 8 with InstanceRegisterRequest

use of com.tencent.polaris.api.rpc.InstanceRegisterRequest in project polaris-java by polarismesh.

the class CircuitBreakExample method registerInstances.

private static void registerInstances(ProviderAPI providerAPI, InitResult initResult) {
    for (int i = 0; i < initResult.getInstanceCount(); i++) {
        InstanceRegisterRequest instanceRegisterRequest = new InstanceRegisterRequest();
        instanceRegisterRequest.setNamespace(initResult.getNamespace());
        instanceRegisterRequest.setService(initResult.getService());
        instanceRegisterRequest.setHost("127.0.0.1");
        instanceRegisterRequest.setPort(13000 + i);
        instanceRegisterRequest.setToken(initResult.getToken());
        InstanceRegisterResponse instanceRegisterResponse = providerAPI.register(instanceRegisterRequest);
        System.out.println("response after register is " + instanceRegisterResponse);
    }
    CircuitBreakExampleUtils.doSleep(5000);
}
Also used : InstanceRegisterRequest(com.tencent.polaris.api.rpc.InstanceRegisterRequest) InstanceRegisterResponse(com.tencent.polaris.api.rpc.InstanceRegisterResponse)

Example 9 with InstanceRegisterRequest

use of com.tencent.polaris.api.rpc.InstanceRegisterRequest in project sofa-rpc by sofastack.

the class PolarisRegistry method buildPolarisRegister.

// convert ProviderConfig to polaris registerRequest
public List<InstanceRegisterRequest> buildPolarisRegister(ProviderConfig config) {
    List<ServerConfig> serverConfigs = config.getServer();
    if (CommonUtils.isEmpty(serverConfigs)) {
        return Collections.emptyList();
    }
    List<InstanceRegisterRequest> requestList = new ArrayList<>();
    for (ServerConfig serverConfig : serverConfigs) {
        InstanceRegisterRequest request = new InstanceRegisterRequest();
        request.setNamespace(buildNameSpace(config.getAppName()));
        request.setService(buildServiceName(config));
        request.setHost(getServerHost(serverConfig));
        request.setPort(serverConfig.getPort());
        request.setPriority(config.getPriority());
        request.setProtocol(serverConfig.getProtocol());
        request.setWeight(config.getWeight());
        request.setTimeoutMs(config.getTimeout());
        request.setVersion(config.getVersion());
        request.setTtl(properties.getHealthCheckTTL());
        Map<String, String> metaData = convertProviderToMap(config, serverConfig);
        checkAndDelNull(metaData);
        request.setMetadata(metaData);
        requestList.add(request);
    }
    return requestList;
}
Also used : ServerConfig(com.alipay.sofa.rpc.config.ServerConfig) InstanceRegisterRequest(com.tencent.polaris.api.rpc.InstanceRegisterRequest) ArrayList(java.util.ArrayList)

Example 10 with InstanceRegisterRequest

use of com.tencent.polaris.api.rpc.InstanceRegisterRequest in project polaris-java-agent by polarismesh.

the class PolarisServiceRegistry method register.

/**
 * 服务注册
 *
 * @param registration
 */
@Override
public void register(Registration registration) {
    if (StringUtils.isEmpty(polarisRegistration.getServiceId())) {
        log.warn("No service to register for polaris client...");
        return;
    }
    // 注册实例
    InstanceRegisterRequest instanceRegisterRequest = new InstanceRegisterRequest();
    instanceRegisterRequest.setNamespace(polarisProperties.getNamespace());
    instanceRegisterRequest.setService(polarisRegistration.getServiceId());
    instanceRegisterRequest.setHost(polarisRegistration.getHost());
    instanceRegisterRequest.setPort(polarisRegistration.getPort());
    instanceRegisterRequest.setProtocol(polarisProperties.getProtocol());
    if (null != heartbeatExecutor) {
        instanceRegisterRequest.setTtl(ttl);
    }
    try {
        ProviderAPI providerClient = PolarisAPIFactory.getProviderApi();
        providerClient.register(instanceRegisterRequest);
        log.info("Polaris register success with address host:{}, port:{}", polarisRegistration.getHost(), polarisRegistration.getPort());
        if (null != heartbeatExecutor) {
            InstanceHeartbeatRequest heartbeatRequest = new InstanceHeartbeatRequest();
            BeanUtils.copyProperties(instanceRegisterRequest, heartbeatRequest);
            // 添加反注册Hook
            // 注册成功后开始启动心跳线程
            heartbeat();
        }
    } catch (Exception e) {
        log.error("polaris registry, {} register failed...{},", polarisRegistration.getServiceId(), polarisRegistration, e);
        rethrowRuntimeException(e);
    }
}
Also used : ProviderAPI(com.tencent.polaris.api.core.ProviderAPI) InstanceRegisterRequest(com.tencent.polaris.api.rpc.InstanceRegisterRequest) ReflectionUtils.rethrowRuntimeException(org.springframework.util.ReflectionUtils.rethrowRuntimeException) PolarisException(com.tencent.polaris.api.exception.PolarisException) InstanceHeartbeatRequest(com.tencent.polaris.api.rpc.InstanceHeartbeatRequest)

Aggregations

InstanceRegisterRequest (com.tencent.polaris.api.rpc.InstanceRegisterRequest)10 InstanceRegisterResponse (com.tencent.polaris.api.rpc.InstanceRegisterResponse)6 ProviderAPI (com.tencent.polaris.api.core.ProviderAPI)4 InstanceHeartbeatRequest (com.tencent.polaris.api.rpc.InstanceHeartbeatRequest)3 PolarisException (com.tencent.polaris.api.exception.PolarisException)2 ReflectionUtils.rethrowRuntimeException (org.springframework.util.ReflectionUtils.rethrowRuntimeException)2 ServerConfig (com.alipay.sofa.rpc.config.ServerConfig)1 SofaRpcRuntimeException (com.alipay.sofa.rpc.core.exception.SofaRpcRuntimeException)1 ProviderPubEvent (com.alipay.sofa.rpc.event.ProviderPubEvent)1 Configuration (com.tencent.polaris.api.config.Configuration)1 ServiceKey (com.tencent.polaris.api.pojo.ServiceKey)1 InstanceDeregisterRequest (com.tencent.polaris.api.rpc.InstanceDeregisterRequest)1 InitResult (com.tencent.polaris.discovery.example.utils.ExampleUtils.InitResult)1 ArrayList (java.util.ArrayList)1 Test (org.junit.Test)1