io.netty.channel.pool.AbstractChannelPoolMap Java Examples
The following examples show how to use
io.netty.channel.pool.AbstractChannelPoolMap.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: BackClientPool.java From api-gateway-core with Apache License 2.0 | 5 votes |
private BackClientPool() { bootstrap .group(group) .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 500) .channel(NioSocketChannel.class) .option(ChannelOption.TCP_NODELAY, true) .option(ChannelOption.SO_KEEPALIVE, true); poolMap = new AbstractChannelPoolMap<RequestHolder, SimpleChannelPool>() { @Override protected SimpleChannelPool newPool(RequestHolder requestHolder) { return new FixedChannelPool(bootstrap.remoteAddress(requestHolder.getSocketAddress()), new BackPoolHandler(requestHolder), 50); } }; }
Example #2
Source File: PoolTest.java From util4j with Apache License 2.0 | 5 votes |
public static void main(String[] args) { EventLoopGroup group = new NioEventLoopGroup(); final Bootstrap cb = new Bootstrap(); cb.group(group).channel(NioSocketChannel.class); InetSocketAddress addr1 = new InetSocketAddress("10.0.0.10", 8888); InetSocketAddress addr2 = new InetSocketAddress("10.0.0.11", 8888); //连接池map ChannelPoolMap<InetSocketAddress, SimpleChannelPool> poolMap = new AbstractChannelPoolMap<InetSocketAddress, SimpleChannelPool>() { @Override protected SimpleChannelPool newPool(InetSocketAddress key) { return new SimpleChannelPool(cb.remoteAddress(key), new TestChannelPoolHandler()); } }; final SimpleChannelPool pool1 = poolMap.get(addr1);//取出連接addr1地址的连接池 final SimpleChannelPool pool2 = poolMap.get(addr2);//取出連接addr2地址的连接池 Future<Channel> f1 = pool1.acquire();//获取一个连接 f1.addListener(new FutureListener<Channel>() { @Override public void operationComplete(Future<Channel> f) { if (f.isSuccess()) { Channel ch = f.getNow(); //连接地址1的某个channel //使用连接发送消息 // ch.write(msg) //用完释放 pool1.release(ch); } } }); }