/** * Initializes the netty client channel connection. */ private void initConnection() { if (peerBootstrap != null) { return; } peerBootstrap = createPeerBootStrap(); peerBootstrap.setOption("reuseAddress", true); peerBootstrap.setOption("tcpNoDelay", true); peerBootstrap.setOption("keepAlive", true); peerBootstrap.setOption("receiveBufferSize", Controller.BUFFER_SIZE); peerBootstrap.setOption("receiveBufferSizePredictorFactory", new FixedReceiveBufferSizePredictorFactory( Controller.BUFFER_SIZE)); peerBootstrap.setOption("receiveBufferSizePredictor", new AdaptiveReceiveBufferSizePredictor(64, 4096, 65536)); peerBootstrap.setOption("child.keepAlive", true); peerBootstrap.setOption("child.tcpNoDelay", true); peerBootstrap.setOption("child.sendBufferSize", Controller.BUFFER_SIZE); peerBootstrap.setOption("child.receiveBufferSize", Controller.BUFFER_SIZE); peerBootstrap.setOption("child.receiveBufferSizePredictorFactory", new FixedReceiveBufferSizePredictorFactory( Controller.BUFFER_SIZE)); peerBootstrap.setOption("child.reuseAddress", true); ospfChannelHandler = new OspfInterfaceChannelHandler(this, processes); ChannelPipelineFactory pfact = new OspfPipelineFactory(ospfChannelHandler); peerBootstrap.setPipelineFactory(pfact); }
/** * Initializes the netty client channel connection. */ private void initConnection() { if (peerBootstrap != null) { return; } peerBootstrap = createPeerBootStrap(); peerBootstrap.setOption("reuseAddress", true); peerBootstrap.setOption("tcpNoDelay", true); peerBootstrap.setOption("keepAlive", true); peerBootstrap.setOption("receiveBufferSize", Controller.BUFFER_SIZE); peerBootstrap.setOption("receiveBufferSizePredictorFactory", new FixedReceiveBufferSizePredictorFactory( Controller.BUFFER_SIZE)); peerBootstrap.setOption("receiveBufferSizePredictor", new AdaptiveReceiveBufferSizePredictor(64, 1024, 65536)); peerBootstrap.setOption("child.keepAlive", true); peerBootstrap.setOption("child.tcpNoDelay", true); peerBootstrap.setOption("child.sendBufferSize", Controller.BUFFER_SIZE); peerBootstrap.setOption("child.receiveBufferSize", Controller.BUFFER_SIZE); peerBootstrap.setOption("child.receiveBufferSizePredictorFactory", new FixedReceiveBufferSizePredictorFactory( Controller.BUFFER_SIZE)); peerBootstrap.setOption("child.reuseAddress", true); isisChannelHandler = new IsisChannelHandler(this, processes); ChannelPipelineFactory pfact = new IsisPipelineFactory(isisChannelHandler); peerBootstrap.setPipelineFactory(pfact); }
public FutureTask<ProxyServer> run() { FutureTask<ProxyServer> future = new FutureTask<>(new Callable<ProxyServer>() { @Override public ProxyServer call() throws Exception { // Configure the server. bootstrap = new ServerBootstrap(new NioServerSocketChannelFactory(Executors.newCachedThreadPool(), Executors.newCachedThreadPool())); FiltersChangeNotifier changeNotifier = filtersChangeNotifier != null ? filtersChangeNotifier : FiltersChangeNotifier.IGNORE; CommonHttpPipeline pipelineFactory = new CommonHttpPipeline(TIMER); changeNotifier.addFiltersListener(pipelineFactory); bootstrap.setPipelineFactory(pipelineFactory); bootstrap.setOption("child.tcpNoDelay", true); bootstrap.setOption("child.connectTimeoutMillis", 2000); /*bootstrap.setOption("child.writeBufferHighWaterMark", true); bootstrap.setOption("child.writeBufferLowWaterMark", true); bootstrap.setOption("child.writeSpinCount", true);*/ bootstrap.setOption("child.receiveBufferSizePredictor", new AdaptiveReceiveBufferSizePredictor()); channel = bootstrap.bind(new InetSocketAddress(port)); LOG.info("server bound to port {}", port); LOG.info("current handlers registred {}", pipelineFactory.getPipeline().getNames()); return ProxyServer.this; } }); final Thread thread = new Thread(future, "Proxy Server"); thread.start(); return future; }
/** * Creates a new predictor with the specified parameters. * * @param minimum the inclusive lower bound of the expected buffer size * @param initial the initial buffer size when no feed back was received * @param maximum the inclusive upper bound of the expected buffer size */ public WrappedAdaptiveReceiveBufferSizePredictor(int minimum, int initial, int maximum) { adaptiveReceiveBufferSizePredictor = new AdaptiveReceiveBufferSizePredictor(minimum, initial, maximum); }
/** * Creates a new predictor with the default parameters. With the default * parameters, the expected buffer size starts from {@code 1024}, does not * go down below {@code 64}, and does not go up above {@code 65536}. */ public WrappedAdaptiveReceiveBufferSizePredictor() { adaptiveReceiveBufferSizePredictor = new AdaptiveReceiveBufferSizePredictor(); }