use of com.alipay.sofa.rpc.event.ConsumerSubEvent in project sofa-rpc by sofastack.
the class PolarisRegistry method subscribe.
@Override
public List<ProviderGroup> subscribe(ConsumerConfig config) {
String appName = config.getAppName();
if (!registryConfig.isSubscribe()) {
if (LOGGER.isInfoEnabled(appName)) {
LOGGER.infoWithApp(appName, LogCodes.getLog(LogCodes.INFO_REGISTRY_IGNORE));
}
return null;
}
if (!config.isSubscribe()) {
return null;
}
try {
List<ProviderInfo> providers = findService(config);
if (EventBus.isEnable(ConsumerSubEvent.class)) {
ConsumerSubEvent event = new ConsumerSubEvent(config);
EventBus.post(event);
}
return Collections.singletonList(new ProviderGroup().addAll(providers));
} catch (SofaRpcRuntimeException e) {
throw e;
} catch (Exception e) {
throw new SofaRpcRuntimeException(LogCodes.getLog(LogCodes.ERROR_SUB_PROVIDER, EXT_NAME), e);
}
}
use of com.alipay.sofa.rpc.event.ConsumerSubEvent in project sofa-rpc by sofastack.
the class ConsulRegistry method subscribe.
@Override
public List<ProviderGroup> subscribe(ConsumerConfig config) {
String appName = config.getAppName();
if (!registryConfig.isSubscribe()) {
// 注册中心不订阅
if (LOGGER.isInfoEnabled(appName)) {
LOGGER.infoWithApp(appName, LogCodes.getLog(LogCodes.INFO_REGISTRY_IGNORE));
}
return null;
}
if (!config.isSubscribe()) {
return null;
}
try {
List<ProviderInfo> providers = lookupHealthService(config);
if (EventBus.isEnable(ConsumerSubEvent.class)) {
ConsumerSubEvent event = new ConsumerSubEvent(config);
EventBus.post(event);
}
return Collections.singletonList(new ProviderGroup().addAll(providers));
} catch (SofaRpcRuntimeException e) {
throw e;
} catch (Exception e) {
throw new SofaRpcRuntimeException(LogCodes.getLog(LogCodes.ERROR_SUB_PROVIDER, EXT_NAME), e);
}
}
use of com.alipay.sofa.rpc.event.ConsumerSubEvent in project sofa-rpc by sofastack.
the class SofaRpcMetricsTest method testMicrometerMetrics.
@Test
public void testMicrometerMetrics() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
SimpleMeterRegistry registry = new SimpleMeterRegistry();
try (SofaRpcMetrics metrics = new SofaRpcMetrics()) {
metrics.bindTo(registry);
Method handleEvent = EventBus.class.getDeclaredMethod("handleEvent", Subscriber.class, Event.class);
handleEvent.setAccessible(true);
SofaRequest request = buildRequest();
SofaResponse response = buildResponse();
RpcInternalContext.getContext().setAttachment(RpcConstants.INTERNAL_KEY_CLIENT_ELAPSE, 100).setAttachment(RpcConstants.INTERNAL_KEY_IMPL_ELAPSE, 10).setAttachment(RpcConstants.INTERNAL_KEY_REQ_SIZE, 3).setAttachment(RpcConstants.INTERNAL_KEY_RESP_SIZE, 4);
handleEvent.invoke(EventBus.class, metrics, new ClientEndInvokeEvent(request, response, null));
handleEvent.invoke(EventBus.class, metrics, new ServerSendEvent(request, response, null));
ServerConfig serverConfig = new ServerConfig();
handleEvent.invoke(EventBus.class, metrics, new ServerStartedEvent(serverConfig, new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>())));
handleEvent.invoke(EventBus.class, metrics, new ServerStoppedEvent(serverConfig));
handleEvent.invoke(EventBus.class, metrics, new ProviderPubEvent(new ProviderConfig<>()));
handleEvent.invoke(EventBus.class, metrics, new ConsumerSubEvent(new ConsumerConfig<>()));
Assert.assertEquals(12, registry.getMeters().size());
}
}
Aggregations