Search in sources :

Example 1 with InstanceRegisterRequest

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

the class ProviderTest method testRoundTrip.

@Test
public void testRoundTrip() {
    Configuration configuration = TestUtils.configWithEnvAddress();
    try (ProviderAPI providerAPI = DiscoveryAPIFactory.createProviderAPIByConfig(configuration)) {
        for (int i = 0; i < 5; i++) {
            namingServer.getNamingService().addService(new ServiceKey(NAMESPACE_TEST, SERVICE_PROVIDER));
            // 注册
            InstanceRegisterRequest registerRequest = new InstanceRegisterRequest();
            registerRequest.setNamespace(NAMESPACE_TEST);
            registerRequest.setService(SERVICE_PROVIDER);
            registerRequest.setHost(Consts.HOST);
            registerRequest.setPort(Consts.PORT);
            registerRequest.setProtocol("http");
            registerRequest.setToken(Consts.PROVIDER_TOKEN);
            registerRequest.setTtl(5);
            InstanceRegisterResponse response = providerAPI.register(registerRequest);
            Assert.assertTrue(StringUtils.isNotBlank(response.getInstanceId()));
            Assert.assertFalse(response.isExists());
            // 再注册
            response = providerAPI.register(registerRequest);
            Assert.assertTrue(StringUtils.isNotBlank(response.getInstanceId()));
            Assert.assertTrue(response.isExists());
            Utils.sleepUninterrupted(5000);
            // 心跳上报
            InstanceHeartbeatRequest heartbeatRequest = new InstanceHeartbeatRequest();
            heartbeatRequest.setNamespace(NAMESPACE_TEST);
            heartbeatRequest.setService(SERVICE_PROVIDER);
            heartbeatRequest.setHost(Consts.HOST);
            heartbeatRequest.setPort(Consts.PORT);
            heartbeatRequest.setToken(Consts.PROVIDER_TOKEN);
            providerAPI.heartbeat(heartbeatRequest);
            // 反注册
            InstanceDeregisterRequest deregisterRequest = new InstanceDeregisterRequest();
            deregisterRequest.setNamespace(NAMESPACE_TEST);
            deregisterRequest.setService(SERVICE_PROVIDER);
            deregisterRequest.setHost(Consts.HOST);
            deregisterRequest.setPort(Consts.PORT);
            deregisterRequest.setToken(Consts.PROVIDER_TOKEN);
            providerAPI.deRegister(deregisterRequest);
        }
    }
}
Also used : ProviderAPI(com.tencent.polaris.api.core.ProviderAPI) Configuration(com.tencent.polaris.api.config.Configuration) InstanceRegisterRequest(com.tencent.polaris.api.rpc.InstanceRegisterRequest) InstanceRegisterResponse(com.tencent.polaris.api.rpc.InstanceRegisterResponse) ServiceKey(com.tencent.polaris.api.pojo.ServiceKey) InstanceHeartbeatRequest(com.tencent.polaris.api.rpc.InstanceHeartbeatRequest) InstanceDeregisterRequest(com.tencent.polaris.api.rpc.InstanceDeregisterRequest) Test(org.junit.Test)

Example 2 with InstanceRegisterRequest

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

the class Provider method register.

// do the instance register
private static void register(String namespace, String service, String host, int port, ProviderAPI providerAPI) {
    InstanceRegisterRequest registerRequest = new InstanceRegisterRequest();
    registerRequest.setNamespace(namespace);
    registerRequest.setService(service);
    registerRequest.setHost(host);
    registerRequest.setPort(port);
    registerRequest.setTtl(TTL);
    InstanceRegisterResponse registerResp = providerAPI.register(registerRequest);
    System.out.printf("register instance %s:%d to service %s(%s), id is %s%n", host, port, service, namespace, registerResp.getInstanceId());
}
Also used : InstanceRegisterRequest(com.tencent.polaris.api.rpc.InstanceRegisterRequest) InstanceRegisterResponse(com.tencent.polaris.api.rpc.InstanceRegisterResponse)

Example 3 with InstanceRegisterRequest

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

the class APIFacade method register.

public static boolean register(String namespace, String service, String host, int port, String protocol, String version, int weight, Map<String, String> metadata, int ttl, String token) {
    if (!inited.get()) {
        LOGGER.info("polaris not inited, register fail");
        return false;
    }
    InstanceRegisterRequest instanceRegisterRequest = new InstanceRegisterRequest();
    instanceRegisterRequest.setNamespace(namespace);
    instanceRegisterRequest.setService(service);
    instanceRegisterRequest.setHost(host);
    instanceRegisterRequest.setPort(port);
    instanceRegisterRequest.setProtocol(protocol);
    instanceRegisterRequest.setVersion(version);
    instanceRegisterRequest.setTtl(ttl);
    instanceRegisterRequest.setWeight(weight);
    instanceRegisterRequest.setMetadata(metadata);
    instanceRegisterRequest.setToken(token);
    InstanceRegisterResponse instanceRegisterResponse = providerAPI.register(instanceRegisterRequest);
    LOGGER.info("response after register is {}", instanceRegisterResponse);
    return true;
}
Also used : InstanceRegisterRequest(com.tencent.polaris.api.rpc.InstanceRegisterRequest) InstanceRegisterResponse(com.tencent.polaris.api.rpc.InstanceRegisterResponse)

Example 4 with InstanceRegisterRequest

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

the class PolarisRegistry method register.

@Override
public void register(ProviderConfig config) {
    String appName = config.getAppName();
    if (!registryConfig.isRegister()) {
        if (LOGGER.isInfoEnabled(appName)) {
            LOGGER.infoWithApp(appName, LogCodes.getLog(LogCodes.INFO_REGISTRY_IGNORE));
        }
        return;
    }
    if (!config.isRegister()) {
        return;
    }
    try {
        List<InstanceRegisterRequest> services = buildPolarisRegister(config);
        if (CommonUtils.isNotEmpty(services)) {
            if (LOGGER.isInfoEnabled(appName)) {
                LOGGER.infoWithApp(appName, LogCodes.getLog(LogCodes.INFO_ROUTE_REGISTRY_PUB_START, config.getInterfaceId()));
            }
            for (InstanceRegisterRequest service : services) {
                registerPolarisService(config, service);
                if (LOGGER.isInfoEnabled(appName)) {
                    LOGGER.infoWithApp(appName, LogCodes.getLog(LogCodes.INFO_ROUTE_REGISTRY_PUB, config.getInterfaceId()));
                }
            }
            if (LOGGER.isInfoEnabled(appName)) {
                LOGGER.infoWithApp(appName, LogCodes.getLog(LogCodes.INFO_ROUTE_REGISTRY_PUB_OVER, config.getInterfaceId()));
            }
        }
    } catch (SofaRpcRuntimeException e) {
        throw e;
    } catch (Exception e) {
        throw new SofaRpcRuntimeException(LogCodes.getLog(LogCodes.ERROR_REG_PROVIDER, "polarisRegistry", config.buildKey()), e);
    }
    if (EventBus.isEnable(ProviderPubEvent.class)) {
        ProviderPubEvent event = new ProviderPubEvent(config);
        EventBus.post(event);
    }
}
Also used : SofaRpcRuntimeException(com.alipay.sofa.rpc.core.exception.SofaRpcRuntimeException) InstanceRegisterRequest(com.tencent.polaris.api.rpc.InstanceRegisterRequest) ProviderPubEvent(com.alipay.sofa.rpc.event.ProviderPubEvent) SofaRpcRuntimeException(com.alipay.sofa.rpc.core.exception.SofaRpcRuntimeException)

Example 5 with InstanceRegisterRequest

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

the class PolarisOperator method register.

/**
 * 服务注册
 */
public void register(String service, String host, int port, String protocol, String version, int weight, Map<String, String> metadata) {
    init();
    if (!inited.get()) {
        LOGGER.error("[POLARIS] fail to register address {}:{} to {}, polaris init failed", host, port, service);
        return;
    }
    LOGGER.info("[POLARIS] start to register: service {}, host {}, port {}, protocol {}, version {}, weight {}, metadata {}", service, host, port, protocol, version, weight, metadata);
    String namespace = polarisConfig.getNamespace();
    int ttl = polarisConfig.getTtl();
    String token = polarisConfig.getToken();
    InstanceRegisterRequest instanceRegisterRequest = new InstanceRegisterRequest();
    instanceRegisterRequest.setNamespace(namespace);
    instanceRegisterRequest.setService(service);
    instanceRegisterRequest.setHost(host);
    instanceRegisterRequest.setPort(port);
    instanceRegisterRequest.setWeight(weight);
    instanceRegisterRequest.setVersion(version);
    instanceRegisterRequest.setTtl(ttl);
    instanceRegisterRequest.setMetadata(metadata);
    instanceRegisterRequest.setProtocol(protocol);
    instanceRegisterRequest.setToken(token);
    InstanceRegisterResponse response = providerAPI.register(instanceRegisterRequest);
    LOGGER.info("register result is {} for service {}", response, service);
    // 注册完成后执行心跳上报
    LOGGER.info("heartbeat task start, ttl is {}", ttl);
    Runnable heartbeatTask = new Runnable() {

        @Override
        public void run() {
            heartbeat(service, host, port);
        }
    };
    ScheduledFuture<?> future = heartbeatExecutor.scheduleWithFixedDelay(heartbeatTask, ttl, ttl, TimeUnit.SECONDS);
    scheduledFutures.put(new InstanceIdentifier(service, host, port), future);
}
Also used : InstanceRegisterRequest(com.tencent.polaris.api.rpc.InstanceRegisterRequest) InstanceRegisterResponse(com.tencent.polaris.api.rpc.InstanceRegisterResponse)

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