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);
}
}
}
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());
}
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;
}
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);
}
}
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);
}
Aggregations