Search in sources :

Example 1 with ServerStoppedEvent

use of com.alipay.sofa.rpc.event.ServerStoppedEvent in project sofa-rpc by sofastack.

the class AbstractHttpServer method stop.

@Override
public void stop() {
    if (!started) {
        return;
    }
    synchronized (this) {
        if (!started) {
            return;
        }
        // 关闭端口,不关闭线程池
        serverTransport.stop();
        serverTransport = null;
        // 关闭线程池
        if (bizThreadPool != null) {
            bizThreadPool.shutdown();
            bizThreadPool = null;
            serverHandler.setBizThreadPool(null);
        }
        started = false;
        if (EventBus.isEnable(ServerStoppedEvent.class)) {
            EventBus.post(new ServerStoppedEvent(serverConfig));
        }
    }
}
Also used : ServerStoppedEvent(com.alipay.sofa.rpc.event.ServerStoppedEvent)

Example 2 with ServerStoppedEvent

use of com.alipay.sofa.rpc.event.ServerStoppedEvent in project sofa-rpc by sofastack.

the class BoltServer method stop.

@Override
public void stop() {
    if (!started) {
        return;
    }
    synchronized (this) {
        if (!started) {
            return;
        }
        // 关闭端口,不关闭线程池
        try {
            remotingServer.stop();
        } catch (IllegalStateException ignore) {
        // NOPMD
        }
        if (EventBus.isEnable(ServerStoppedEvent.class)) {
            EventBus.post(new ServerStoppedEvent(serverConfig));
        }
        remotingServer = null;
        started = false;
    }
}
Also used : ServerStoppedEvent(com.alipay.sofa.rpc.event.ServerStoppedEvent)

Example 3 with ServerStoppedEvent

use of com.alipay.sofa.rpc.event.ServerStoppedEvent 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());
    }
}
Also used : ClientEndInvokeEvent(com.alipay.sofa.rpc.event.ClientEndInvokeEvent) SofaRequest(com.alipay.sofa.rpc.core.request.SofaRequest) ServerSendEvent(com.alipay.sofa.rpc.event.ServerSendEvent) ConsumerSubEvent(com.alipay.sofa.rpc.event.ConsumerSubEvent) ProviderConfig(com.alipay.sofa.rpc.config.ProviderConfig) SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) Method(java.lang.reflect.Method) ServerConfig(com.alipay.sofa.rpc.config.ServerConfig) ServerStartedEvent(com.alipay.sofa.rpc.event.ServerStartedEvent) ServerStoppedEvent(com.alipay.sofa.rpc.event.ServerStoppedEvent) ConsumerConfig(com.alipay.sofa.rpc.config.ConsumerConfig) ThreadPoolExecutor(java.util.concurrent.ThreadPoolExecutor) ProviderPubEvent(com.alipay.sofa.rpc.event.ProviderPubEvent) SofaResponse(com.alipay.sofa.rpc.core.response.SofaResponse) Test(org.junit.Test)

Aggregations

ServerStoppedEvent (com.alipay.sofa.rpc.event.ServerStoppedEvent)3 ConsumerConfig (com.alipay.sofa.rpc.config.ConsumerConfig)1 ProviderConfig (com.alipay.sofa.rpc.config.ProviderConfig)1 ServerConfig (com.alipay.sofa.rpc.config.ServerConfig)1 SofaRequest (com.alipay.sofa.rpc.core.request.SofaRequest)1 SofaResponse (com.alipay.sofa.rpc.core.response.SofaResponse)1 ClientEndInvokeEvent (com.alipay.sofa.rpc.event.ClientEndInvokeEvent)1 ConsumerSubEvent (com.alipay.sofa.rpc.event.ConsumerSubEvent)1 ProviderPubEvent (com.alipay.sofa.rpc.event.ProviderPubEvent)1 ServerSendEvent (com.alipay.sofa.rpc.event.ServerSendEvent)1 ServerStartedEvent (com.alipay.sofa.rpc.event.ServerStartedEvent)1 SimpleMeterRegistry (io.micrometer.core.instrument.simple.SimpleMeterRegistry)1 Method (java.lang.reflect.Method)1 ThreadPoolExecutor (java.util.concurrent.ThreadPoolExecutor)1 Test (org.junit.Test)1