public static Executor get(ServantAdapterConfig config) { return getAndcreateExecutor(config); }
public void bind(AppService appService) throws IOException { this.skeleton = (ServantHomeSkeleton) appService; ServerConfig serverCfg = ConfigurationManager.getInstance().getServerConfig(); boolean keepAlive = true; Codec codec = createCodec(serverCfg); Processor processor = createProcessor(serverCfg); Executor threadPool = ServantThreadPoolManager.get(servantAdapterConfig); Endpoint endpoint = this.servantAdapterConfig.getEndpoint(); if (endpoint.type().equals("tcp")) { this.selectorManager = new SelectorManager(Utils.getSelectorPoolSize(), new ServantProtocolFactory(codec), threadPool, processor, keepAlive, "server-tcp-reactor", false); this.selectorManager.setTcpNoDelay(serverCfg.isTcpNoDelay()); this.selectorManager.start(); System.out.println("[SERVER] server starting at " + endpoint + "..."); ServerSocketChannel serverChannel = ServerSocketChannel.open(); serverChannel.socket().bind(new InetSocketAddress(endpoint.host(), endpoint.port()), 1024); serverChannel.configureBlocking(false); selectorManager.getReactor(0).registerChannel(serverChannel, SelectionKey.OP_ACCEPT); System.out.println("[SERVER] server started at " + endpoint + "..."); } else if (endpoint.type().equals("udp")) { this.selectorManager = new SelectorManager(1, new ServantProtocolFactory(codec), threadPool, processor, false, "server-udp-reactor", true); this.selectorManager.start(); System.out.println("[SERVER] server starting at " + endpoint + "..."); DatagramChannel serverChannel = DatagramChannel.open(); DatagramSocket socket = serverChannel.socket(); socket.bind(new InetSocketAddress(endpoint.host(), endpoint.port())); serverChannel.configureBlocking(false); this.selectorManager.getReactor(0).registerChannel(serverChannel, SelectionKey.OP_READ); System.out.println("[SERVER] servant started at " + endpoint + "..."); } }
private static synchronized Executor getAndcreateExecutor(ServantAdapterConfig config) { String key = config.getHandleGroup(); Executor executor = null; executor = threadExecutors.get(key); if (executor != null) return executor; int minPoolSize = -1, maxPoolSize = -1, queueSize = -1; minPoolSize = config.getThreads(); maxPoolSize = config.getThreads(); queueSize = config.getQueueCap(); if (minPoolSize < 0 || maxPoolSize < 0 || queueSize < 0) { return createDefaultExecutor(key); } TaskQueue taskqueue = new TaskQueue(queueSize); TaskThreadPoolExecutor pool = new TaskThreadPoolExecutor(minPoolSize, maxPoolSize, 120, TimeUnit.SECONDS, taskqueue, new TaskThreadFactory("ServantThreadPool-exec-" + key + '-')); taskqueue.setParent(pool); threadExecutors.put(key, pool); return pool; } }
public void bind() throws IOException { ServerConfig serverCfg = ConfigurationManager.getInstance().getServerConfig(); boolean keepAlive = true; Codec codec = new TarsCodec(serverCfg.getCharsetName()); Processor processor = new TarsServantProcessor(); Executor threadPool = ServantThreadPoolManager.get(servantAdapterConfig); Endpoint endpoint = this.servantAdapterConfig.getEndpoint(); if (endpoint.type().equals("tcp")) { this.selectorManager = new SelectorManager(Utils.getSelectorPoolSize(), new ServantProtocolFactory(codec), threadPool, processor, keepAlive, "server-tcp-reactor", false); this.selectorManager.setTcpNoDelay(serverCfg.isTcpNoDelay()); this.selectorManager.start(); System.out.println("[SERVER] server starting at " + endpoint + "..."); ServerSocketChannel serverChannel = ServerSocketChannel.open(); serverChannel.socket().bind(new InetSocketAddress(endpoint.host(), endpoint.port()), 1024); serverChannel.configureBlocking(false); selectorManager.getReactor(0).registerChannel(serverChannel, SelectionKey.OP_ACCEPT); System.out.println("[SERVER] server started at " + endpoint + "..."); } else if (endpoint.type().equals("udp")) { this.selectorManager = new SelectorManager(1, new ServantProtocolFactory(codec), threadPool, processor, false, "server-udp-reactor", true); this.selectorManager.start(); System.out.println("[SERVER] server starting at " + endpoint + "..."); DatagramChannel serverChannel = DatagramChannel.open(); DatagramSocket socket = serverChannel.socket(); socket.bind(new InetSocketAddress(endpoint.host(), endpoint.port())); serverChannel.configureBlocking(false); this.selectorManager.getReactor(0).registerChannel(serverChannel, SelectionKey.OP_READ); System.out.println("[SERVER] servant started at " + endpoint + "..."); } }
private static synchronized Executor getAndcreateExecutor(ServantAdapterConfig config) { String key = config.getHandleGroup(); Executor executor = null; executor = threadExecutors.get(key); if (executor != null) return executor; int minPoolSize = -1, maxPoolSize = -1, queueSize = -1; minPoolSize = config.getThreads(); maxPoolSize = config.getThreads(); queueSize = config.getQueueCap(); if (minPoolSize < 0 || maxPoolSize < 0 || queueSize < 0) { return createDefaultExecutor(key); } TaskQueue taskqueue = new TaskQueue(queueSize); TaskThreadPoolExecutor pool = new TaskThreadPoolExecutor(minPoolSize, maxPoolSize, 120, TimeUnit.SECONDS, taskqueue, new TaskThreadFactory("ServantThreadPool-exec-" + key + '-')); taskqueue.setParent(pool); threadExecutors.put(key, pool); return pool; } }
public void bind(AppService appService) throws IOException { this.skeleton = (ServantHomeSkeleton) appService; ServerConfig serverCfg = ConfigurationManager.getInstance().getServerConfig(); boolean keepAlive = true; Codec codec = createCodec(serverCfg); Processor processor = createProcessor(serverCfg); Executor threadPool = ServantThreadPoolManager.get(servantAdapterConfig); Endpoint endpoint = this.servantAdapterConfig.getEndpoint(); if (endpoint.type().equals("tcp")) { this.selectorManager = new SelectorManager(Utils.getSelectorPoolSize(), new ServantProtocolFactory(codec), threadPool, processor, keepAlive, "server-tcp-reactor", false); this.selectorManager.setTcpNoDelay(serverCfg.isTcpNoDelay()); this.selectorManager.start(); System.out.println("[SERVER] server starting at " + endpoint + "..."); ServerSocketChannel serverChannel = ServerSocketChannel.open(); serverChannel.socket().bind(new InetSocketAddress(endpoint.host(), endpoint.port()), 1024); serverChannel.configureBlocking(false); selectorManager.getReactor(0).registerChannel(serverChannel, SelectionKey.OP_ACCEPT); System.out.println("[SERVER] server started at " + endpoint + "..."); } else if (endpoint.type().equals("udp")) { this.selectorManager = new SelectorManager(1, new ServantProtocolFactory(codec), threadPool, processor, false, "server-udp-reactor", true); this.selectorManager.start(); System.out.println("[SERVER] server starting at " + endpoint + "..."); DatagramChannel serverChannel = DatagramChannel.open(); DatagramSocket socket = serverChannel.socket(); socket.bind(new InetSocketAddress(endpoint.host(), endpoint.port())); serverChannel.configureBlocking(false); this.selectorManager.getReactor(0).registerChannel(serverChannel, SelectionKey.OP_READ); System.out.println("[SERVER] servant started at " + endpoint + "..."); } }
public static Executor get(ServantAdapterConfig config) { return getAndcreateExecutor(config); }
public void bind() throws IOException { ServerConfig serverCfg = ConfigurationManager.getInstance().getServerConfig(); boolean keepAlive = true; Codec codec = new TarsCodec(serverCfg.getCharsetName()); Processor processor = new TarsServantProcessor(); Executor threadPool = ServantThreadPoolManager.get(servantAdapterConfig); Endpoint endpoint = this.servantAdapterConfig.getEndpoint(); if (endpoint.type().equals("tcp")) { this.selectorManager = new SelectorManager(Utils.getSelectorPoolSize(), new ServantProtocolFactory(codec), threadPool, processor, keepAlive, "server-tcp-reactor", false); this.selectorManager.setTcpNoDelay(serverCfg.isTcpNoDelay()); this.selectorManager.start(); System.out.println("[SERVER] server starting at " + endpoint + "..."); ServerSocketChannel serverChannel = ServerSocketChannel.open(); serverChannel.socket().bind(new InetSocketAddress(endpoint.host(), endpoint.port()), 1024); serverChannel.configureBlocking(false); selectorManager.getReactor(0).registerChannel(serverChannel, SelectionKey.OP_ACCEPT); System.out.println("[SERVER] server started at " + endpoint + "..."); } else if (endpoint.type().equals("udp")) { this.selectorManager = new SelectorManager(1, new ServantProtocolFactory(codec), threadPool, processor, false, "server-udp-reactor", true); this.selectorManager.start(); System.out.println("[SERVER] server starting at " + endpoint + "..."); DatagramChannel serverChannel = DatagramChannel.open(); DatagramSocket socket = serverChannel.socket(); socket.bind(new InetSocketAddress(endpoint.host(), endpoint.port())); serverChannel.configureBlocking(false); this.selectorManager.getReactor(0).registerChannel(serverChannel, SelectionKey.OP_READ); System.out.println("[SERVER] servant started at " + endpoint + "..."); } }