Search in sources :

Example 6 with InstanceRegisterResponse

use of com.tencent.polaris.api.rpc.InstanceRegisterResponse 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 7 with InstanceRegisterResponse

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

the class DefaultProviderAPI method register.

@Override
public InstanceRegisterResponse register(InstanceRegisterRequest req) throws PolarisException {
    checkAvailable("ProviderAPI");
    Validator.validateInstanceRegisterRequest(req);
    long retryInterval = sdkContext.getConfig().getGlobal().getAPI().getRetryInterval();
    long timeout = getTimeout(req);
    while (timeout > 0) {
        long start = System.currentTimeMillis();
        ServiceCallResult serviceCallResult = new ServiceCallResult();
        CommonProviderRequest request = req.getRequest();
        try {
            CommonProviderResponse response = serverConnector.registerInstance(request);
            LOG.info("register {}/{} instance {} succ", req.getNamespace(), req.getService(), response.getInstanceID());
            serviceCallResult.setRetStatus(RetStatus.RetSuccess);
            serviceCallResult.setRetCode(ErrorCode.Success.getCode());
            return new InstanceRegisterResponse(response.getInstanceID(), response.isExists());
        } catch (PolarisException e) {
            serviceCallResult.setRetStatus(RetStatus.RetFail);
            serviceCallResult.setRetCode(exceptionToErrorCode(e).getCode());
            if (e instanceof RetriableException) {
                LOG.warn("instance register request error, retrying.", e);
                Utils.sleepUninterrupted(retryInterval);
                continue;
            }
            throw e;
        } finally {
            long delay = System.currentTimeMillis() - start;
            serviceCallResult.setDelay(delay);
            reportServerCall(serviceCallResult, request.getTargetServer(), "register");
            timeout -= delay;
        }
    }
    throw new PolarisException(ErrorCode.API_TIMEOUT, "instance register request timeout.");
}
Also used : CommonProviderRequest(com.tencent.polaris.api.plugin.server.CommonProviderRequest) PolarisException(com.tencent.polaris.api.exception.PolarisException) ServiceCallResult(com.tencent.polaris.api.rpc.ServiceCallResult) CommonProviderResponse(com.tencent.polaris.api.plugin.server.CommonProviderResponse) InstanceRegisterResponse(com.tencent.polaris.api.rpc.InstanceRegisterResponse) RetriableException(com.tencent.polaris.api.exception.RetriableException)

Aggregations

InstanceRegisterResponse (com.tencent.polaris.api.rpc.InstanceRegisterResponse)7 InstanceRegisterRequest (com.tencent.polaris.api.rpc.InstanceRegisterRequest)6 ProviderAPI (com.tencent.polaris.api.core.ProviderAPI)2 Configuration (com.tencent.polaris.api.config.Configuration)1 PolarisException (com.tencent.polaris.api.exception.PolarisException)1 RetriableException (com.tencent.polaris.api.exception.RetriableException)1 CommonProviderRequest (com.tencent.polaris.api.plugin.server.CommonProviderRequest)1 CommonProviderResponse (com.tencent.polaris.api.plugin.server.CommonProviderResponse)1 ServiceKey (com.tencent.polaris.api.pojo.ServiceKey)1 InstanceDeregisterRequest (com.tencent.polaris.api.rpc.InstanceDeregisterRequest)1 InstanceHeartbeatRequest (com.tencent.polaris.api.rpc.InstanceHeartbeatRequest)1 ServiceCallResult (com.tencent.polaris.api.rpc.ServiceCallResult)1 InitResult (com.tencent.polaris.discovery.example.utils.ExampleUtils.InitResult)1 Test (org.junit.Test)1