Search in sources :

Example 21 with ServerConfiguration

use of com.generallycloud.baseio.configuration.ServerConfiguration in project baseio by generallycloud.

the class TestShowMemoryServlet method doAccept.

@Override
protected void doAccept(HttpSession session, HttpFuture future) throws Exception {
    ApplicationContext appContext = ApplicationContext.getInstance();
    FutureAcceptorServiceLoader fasLoader = appContext.getFutureAcceptorServiceLoader();
    TestWebSocketChatServlet chatServlet = (TestWebSocketChatServlet) fasLoader.getFutureAcceptor("/web-socket-chat");
    TestWebSocketRumpetrollServlet rumpetrollServlet = (TestWebSocketRumpetrollServlet) fasLoader.getFutureAcceptor("/web-socket-rumpetroll");
    WebSocketMsgAdapter chatMsgAdapter = chatServlet.getMsgAdapter();
    WebSocketMsgAdapter rumpetrollMsgAdapter = rumpetrollServlet.getMsgAdapter();
    SocketChannelContext context = session.getIoSession().getContext();
    HttpContext httpContext = session.getContext();
    BigDecimal time = new BigDecimal(System.currentTimeMillis() - context.getStartupTime());
    BigDecimal anHour = new BigDecimal(60 * 60 * 1000);
    BigDecimal hour = time.divide(anHour, 3, RoundingMode.HALF_UP);
    ByteBufAllocatorManager allocator = context.getByteBufAllocatorManager();
    String allocatorDes = "unpooled";
    if (allocator instanceof PooledByteBufAllocatorManager) {
        allocatorDes = ((PooledByteBufAllocatorManager) allocator).toDebugString();
    }
    ServerConfiguration configuration = context.getServerConfiguration();
    int SERVER_CORE_SIZE = configuration.getSERVER_CORE_SIZE();
    int SERVER_MEMORY_POOL_CAPACITY = configuration.getSERVER_MEMORY_POOL_CAPACITY() * SERVER_CORE_SIZE;
    int SERVER_MEMORY_POOL_UNIT = configuration.getSERVER_MEMORY_POOL_UNIT();
    double MEMORY_POOL_SIZE = new BigDecimal(SERVER_MEMORY_POOL_CAPACITY * SERVER_MEMORY_POOL_UNIT).divide(new BigDecimal(1024 * 1024), 2, BigDecimal.ROUND_HALF_UP).doubleValue();
    int M = 1024 * 1024;
    Runtime runtime = Runtime.getRuntime();
    StringBuilder builder = new StringBuilder(HtmlUtil.HTML_HEADER);
    builder.append("		<div style=\"margin-left:20px;\">\n");
    builder.append("服务器内存使用情况:</BR>\n");
    builder.append("虚拟机占用内存:");
    builder.append(runtime.totalMemory() / M);
    builder.append("M;\n</BR>已占用内存:");
    builder.append((runtime.totalMemory() - runtime.freeMemory()) / M);
    builder.append("M;\n</BR>空闲内存:");
    builder.append(runtime.freeMemory() / M);
    builder.append("M;\n</BR>内存池大小:");
    builder.append(MEMORY_POOL_SIZE);
    builder.append("M;\n</BR>内存池状态(Heap):");
    builder.append(allocatorDes);
    builder.append("\n</BR>聊天室(WebSocket)客户端数量:");
    builder.append(chatMsgAdapter.getClientSize());
    builder.append("\n</BR>小蝌蚪(WebSocket)客户端数量:");
    builder.append(rumpetrollMsgAdapter.getClientSize());
    builder.append("\n</BR>服务器当前连接数(io-session):");
    builder.append(context.getSessionManager().getManagedSessionSize());
    builder.append(";\n</BR>服务器当前会话数(http-session):");
    builder.append(httpContext.getHttpSessionManager().getManagedSessionSize());
    builder.append(";\n</BR>服务运行时间:");
    builder.append(hour + "H;");
    builder.append("		</div>\n");
    builder.append(HtmlUtil.HTML_POWER_BY);
    builder.append(HtmlUtil.HTML_BOTTOM);
    future.write(builder.toString());
    future.setResponseHeader("Content-Type", "text/html");
    session.flush(future);
}
Also used : ServerConfiguration(com.generallycloud.baseio.configuration.ServerConfiguration) HttpContext(com.generallycloud.baseio.container.http11.HttpContext) PooledByteBufAllocatorManager(com.generallycloud.baseio.buffer.PooledByteBufAllocatorManager) FutureAcceptorServiceLoader(com.generallycloud.baseio.container.service.FutureAcceptorServiceLoader) SocketChannelContext(com.generallycloud.baseio.component.SocketChannelContext) ByteBufAllocatorManager(com.generallycloud.baseio.buffer.ByteBufAllocatorManager) PooledByteBufAllocatorManager(com.generallycloud.baseio.buffer.PooledByteBufAllocatorManager) BigDecimal(java.math.BigDecimal) ApplicationContext(com.generallycloud.baseio.container.ApplicationContext)

Example 22 with ServerConfiguration

use of com.generallycloud.baseio.configuration.ServerConfiguration in project baseio by generallycloud.

the class NioSocketChannelConnector method initSelectorLoops.

private void initSelectorLoops() {
    // FIXME socket selector event loop ?
    ServerConfiguration configuration = getContext().getServerConfiguration();
    String eventLoopName = "nio-process(tcp-" + configuration.getSERVER_PORT() + ")";
    int core_size = configuration.getSERVER_CORE_SIZE();
    this.selectorEventLoopGroup = new SocketSelectorEventLoopGroup(getContext(), eventLoopName, core_size);
    LifeCycleUtil.start(selectorEventLoopGroup);
}
Also used : ServerConfiguration(com.generallycloud.baseio.configuration.ServerConfiguration) SocketSelectorEventLoopGroup(com.generallycloud.baseio.component.SocketSelectorEventLoopGroup)

Example 23 with ServerConfiguration

use of com.generallycloud.baseio.configuration.ServerConfiguration in project baseio by generallycloud.

the class TestProtobufClient method main.

public static void main(String[] args) throws Exception {
    ProtobufUtil protobufUtil = new ProtobufUtil();
    protobufUtil.regist(SearchRequest.getDefaultInstance());
    IoEventHandleAdaptor eventHandleAdaptor = new IoEventHandleAdaptor() {

        @Override
        public void accept(SocketSession session, Future future) throws Exception {
            ProtobaseFuture f = (ProtobaseFuture) future;
            SearchRequest res = (SearchRequest) protobufUtil.getMessage(f);
            System.out.println();
            System.out.println("________" + res);
            System.out.println();
        }
    };
    SocketChannelContext context = new NioSocketChannelContext(new ServerConfiguration(18300));
    SocketChannelConnector connector = new SocketChannelConnector(context);
    context.setIoEventHandleAdaptor(eventHandleAdaptor);
    context.addSessionEventListener(new LoggerSocketSEListener());
    // context.addSessionEventListener(new SessionActiveSEListener());
    // context.setBeatFutureFactory(new FLBeatFutureFactory());
    context.setProtocolFactory(new ProtobaseProtocolFactory());
    SocketSession session = connector.connect();
    ProtobaseFuture f = new ProtobaseFutureImpl(context);
    ByteString byteString = ByteString.copyFrom("222".getBytes());
    SearchRequest request = SearchRequest.newBuilder().setCorpus(Corpus.IMAGES).setPageNumber(100).setQuery("test").setQueryBytes(byteString).setResultPerPage(-1).build();
    protobufUtil.writeProtobuf(request, f);
    session.flush(f);
    ThreadUtil.sleep(100);
    CloseUtil.close(connector);
}
Also used : SearchRequest(com.generallycloud.test.io.protobuf.TestProtoBufBean.SearchRequest) SocketChannelConnector(com.generallycloud.baseio.connector.SocketChannelConnector) LoggerSocketSEListener(com.generallycloud.baseio.component.LoggerSocketSEListener) ByteString(com.google.protobuf.ByteString) ServerConfiguration(com.generallycloud.baseio.configuration.ServerConfiguration) ProtobufUtil(com.generallycloud.baseio.codec.protobuf.ProtobufUtil) NioSocketChannelContext(com.generallycloud.baseio.component.NioSocketChannelContext) SocketChannelContext(com.generallycloud.baseio.component.SocketChannelContext) NioSocketChannelContext(com.generallycloud.baseio.component.NioSocketChannelContext) ProtobaseProtocolFactory(com.generallycloud.baseio.codec.protobase.ProtobaseProtocolFactory) ProtobaseFuture(com.generallycloud.baseio.codec.protobase.future.ProtobaseFuture) SocketSession(com.generallycloud.baseio.component.SocketSession) IoEventHandleAdaptor(com.generallycloud.baseio.component.IoEventHandleAdaptor) ProtobaseFutureImpl(com.generallycloud.baseio.codec.protobase.future.ProtobaseFutureImpl) ProtobaseFuture(com.generallycloud.baseio.codec.protobase.future.ProtobaseFuture) Future(com.generallycloud.baseio.protocol.Future)

Example 24 with ServerConfiguration

use of com.generallycloud.baseio.configuration.ServerConfiguration in project baseio by generallycloud.

the class TestReconnectClient method main.

public static void main(String[] args) throws Exception {
    IoEventHandleAdaptor eventHandleAdaptor = new IoEventHandleAdaptor() {

        @Override
        public void accept(SocketSession session, Future future) throws Exception {
        }
    };
    SocketChannelContext context = new NioSocketChannelContext(new ServerConfiguration("localhost", 8300));
    ReconnectableConnector connector = new ReconnectableConnector(context);
    connector.setRetryTime(5000);
    context.setIoEventHandleAdaptor(eventHandleAdaptor);
    context.addSessionEventListener(new LoggerSocketSEListener());
    context.setProtocolFactory(new FixedLengthProtocolFactory());
    // context.addSessionEventListener(new CloseConnectorSEListener(connector.getRealConnector()));
    connector.connect();
    ThreadUtil.sleep(Long.MAX_VALUE);
    CloseUtil.close(connector);
}
Also used : ReconnectableConnector(com.generallycloud.baseio.connector.ReconnectableConnector) LoggerSocketSEListener(com.generallycloud.baseio.component.LoggerSocketSEListener) SocketSession(com.generallycloud.baseio.component.SocketSession) FixedLengthProtocolFactory(com.generallycloud.baseio.codec.fixedlength.FixedLengthProtocolFactory) ServerConfiguration(com.generallycloud.baseio.configuration.ServerConfiguration) IoEventHandleAdaptor(com.generallycloud.baseio.component.IoEventHandleAdaptor) Future(com.generallycloud.baseio.protocol.Future) SocketChannelContext(com.generallycloud.baseio.component.SocketChannelContext) NioSocketChannelContext(com.generallycloud.baseio.component.NioSocketChannelContext) NioSocketChannelContext(com.generallycloud.baseio.component.NioSocketChannelContext)

Example 25 with ServerConfiguration

use of com.generallycloud.baseio.configuration.ServerConfiguration in project baseio by generallycloud.

the class TestRedisClient method main.

public static void main(String[] args) throws Exception {
    SocketChannelContext context = new NioSocketChannelContext(new ServerConfiguration(6379));
    SocketChannelConnector connector = new SocketChannelConnector(context);
    context.setIoEventHandleAdaptor(new RedisIOEventHandle());
    context.addSessionEventListener(new LoggerSocketSEListener());
    context.setProtocolFactory(new RedisProtocolFactory());
    SocketSession session = connector.connect();
    RedisClient client = new RedisClient(session);
    String value = client.set("name222", "hello redis!");
    System.out.println("__________________res______" + value);
    value = client.get("name222");
    System.out.println("__________________res______" + value);
    value = client.set("debug", "PONG");
    System.out.println("__________________res______" + value);
    value = client.get("debug");
    System.out.println("__________________res______" + value);
    value = client.ping();
    System.out.println("__________________res______" + value);
    ThreadUtil.sleep(100);
    CloseUtil.close(connector);
}
Also used : RedisClient(com.generallycloud.baseio.codec.redis.future.RedisClient) SocketChannelConnector(com.generallycloud.baseio.connector.SocketChannelConnector) RedisIOEventHandle(com.generallycloud.baseio.codec.redis.future.RedisIOEventHandle) LoggerSocketSEListener(com.generallycloud.baseio.component.LoggerSocketSEListener) SocketSession(com.generallycloud.baseio.component.SocketSession) RedisProtocolFactory(com.generallycloud.baseio.codec.redis.RedisProtocolFactory) ServerConfiguration(com.generallycloud.baseio.configuration.ServerConfiguration) SocketChannelContext(com.generallycloud.baseio.component.SocketChannelContext) NioSocketChannelContext(com.generallycloud.baseio.component.NioSocketChannelContext) NioSocketChannelContext(com.generallycloud.baseio.component.NioSocketChannelContext)

Aggregations

ServerConfiguration (com.generallycloud.baseio.configuration.ServerConfiguration)62 SocketChannelContext (com.generallycloud.baseio.component.SocketChannelContext)55 NioSocketChannelContext (com.generallycloud.baseio.component.NioSocketChannelContext)54 LoggerSocketSEListener (com.generallycloud.baseio.component.LoggerSocketSEListener)53 SocketChannelConnector (com.generallycloud.baseio.connector.SocketChannelConnector)41 SocketSession (com.generallycloud.baseio.component.SocketSession)35 Future (com.generallycloud.baseio.protocol.Future)33 IoEventHandleAdaptor (com.generallycloud.baseio.component.IoEventHandleAdaptor)29 ProtobaseProtocolFactory (com.generallycloud.baseio.codec.protobase.ProtobaseProtocolFactory)28 FixedSession (com.generallycloud.baseio.container.FixedSession)21 SimpleIoEventHandle (com.generallycloud.baseio.container.SimpleIoEventHandle)21 ProtobaseFuture (com.generallycloud.baseio.codec.protobase.future.ProtobaseFuture)16 SocketChannelAcceptor (com.generallycloud.baseio.acceptor.SocketChannelAcceptor)12 FixedLengthProtocolFactory (com.generallycloud.baseio.codec.fixedlength.FixedLengthProtocolFactory)12 FixedLengthFuture (com.generallycloud.baseio.codec.fixedlength.future.FixedLengthFuture)7 ProtobaseFutureImpl (com.generallycloud.baseio.codec.protobase.future.ProtobaseFutureImpl)7 FixedLengthFutureImpl (com.generallycloud.baseio.codec.fixedlength.future.FixedLengthFutureImpl)6 MessageConsumer (com.generallycloud.baseio.container.jms.client.MessageConsumer)6 DefaultMessageConsumer (com.generallycloud.baseio.container.jms.client.impl.DefaultMessageConsumer)6 ParamedProtobaseProtocolFactory (com.generallycloud.baseio.codec.protobase.ParamedProtobaseProtocolFactory)5