Example usage for io.netty.channel ChannelOption ALLOCATOR

List of usage examples for io.netty.channel ChannelOption ALLOCATOR

Introduction

In this page you can find the example usage for io.netty.channel ChannelOption ALLOCATOR.

Prototype

ChannelOption ALLOCATOR

To view the source code for io.netty.channel ChannelOption ALLOCATOR.

Click Source Link

Usage

From source file:io.lettuce.core.AbstractRedisClient.java

License:Apache License

/**
 * Populate connection builder with necessary resources.
 *
 * @param socketAddressSupplier address supplier for initial connect and re-connect
 * @param connectionBuilder connection builder to configure the connection
 * @param redisURI URI of the Redis instance
 *///w  w  w  . j  a  v  a2s . com
protected void connectionBuilder(Mono<SocketAddress> socketAddressSupplier, ConnectionBuilder connectionBuilder,
        RedisURI redisURI) {

    Bootstrap redisBootstrap = new Bootstrap();
    redisBootstrap.option(ChannelOption.WRITE_BUFFER_HIGH_WATER_MARK, 32 * 1024);
    redisBootstrap.option(ChannelOption.WRITE_BUFFER_LOW_WATER_MARK, 8 * 1024);
    redisBootstrap.option(ChannelOption.ALLOCATOR, BUF_ALLOCATOR);

    SocketOptions socketOptions = getOptions().getSocketOptions();

    redisBootstrap.option(ChannelOption.CONNECT_TIMEOUT_MILLIS,
            Math.toIntExact(socketOptions.getConnectTimeout().toMillis()));

    if (LettuceStrings.isEmpty(redisURI.getSocket())) {
        redisBootstrap.option(ChannelOption.SO_KEEPALIVE, socketOptions.isKeepAlive());
        redisBootstrap.option(ChannelOption.TCP_NODELAY, socketOptions.isTcpNoDelay());
    }

    connectionBuilder.timeout(redisURI.getTimeout());
    connectionBuilder.password(redisURI.getPassword());

    connectionBuilder.bootstrap(redisBootstrap);
    connectionBuilder.channelGroup(channels).connectionEvents(connectionEvents).timer(timer);
    connectionBuilder.socketAddressSupplier(socketAddressSupplier);
}

From source file:io.maelstorm.server.ServerInit.java

License:Open Source License

public void start(String configFile, RequestHandler handler) throws Exception {
    LOG.info("Starting.");
    AppendableCharSequenceAddon.configure();
    try {/*from  ww w  .jav a 2  s . c  o m*/
        System.in.close(); // Release a FD we don't need.
    } catch (Exception e) {
        LOG.warn("Failed to close stdin", e);
    }
    Properties prop = getProperties(configFile);
    requestDistributor = handler;
    requestDistributor.setInitializer(this);
    String os = System.getProperty("os.name").toLowerCase(Locale.UK).trim();
    if (os.startsWith("linux")) {
        bossGroup = (null == bossGroup) ? new EpollEventLoopGroup(1) : bossGroup;
        workerGroup = (null == workerGroup) ? new EpollEventLoopGroup(NUM_WORKER_THREADS) : workerGroup;
    } else {
        bossGroup = (null == bossGroup) ? new NioEventLoopGroup(1) : bossGroup;
        workerGroup = (null == workerGroup) ? new NioEventLoopGroup(NUM_WORKER_THREADS) : workerGroup;
    }

    String[] servers = prop.getProperty("servers").split(",");
    for (String server : servers) {

        try {
            controller = new ServerBootstrap();
            controller.group(bossGroup, workerGroup);
            if (os.startsWith("linux")) {
                controller.channel(EpollServerSocketChannel.class);
                controller.option(EpollChannelOption.TCP_CORK, true);
            } else {
                controller.channel(NioServerSocketChannel.class);
            }
            controller.childHandler(new PipelineFactory(handler, getPipelineConfig(prop, server)));
            controller.option(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT);
            controller.option(ChannelOption.RCVBUF_ALLOCATOR, AdaptiveRecvByteBufAllocator.DEFAULT);
            controller.option(ChannelOption.CONNECT_TIMEOUT_MILLIS,
                    getInt(prop, server, "connectTimeoutMillis"));
            controller.option(ChannelOption.WRITE_BUFFER_HIGH_WATER_MARK, 64 * 1024);
            controller.option(ChannelOption.WRITE_BUFFER_LOW_WATER_MARK, 1 * 1024);
            controller.option(ChannelOption.SO_KEEPALIVE, getBoolean(prop, server, "SOKeepalive"));
            controller.option(ChannelOption.SO_REUSEADDR, true);
            controller.option(ChannelOption.TCP_NODELAY, true);
            controller.option(ChannelOption.SO_LINGER, 0);
            controller.childOption(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT);
            controller.childOption(ChannelOption.WRITE_BUFFER_HIGH_WATER_MARK, 64 * 1024);
            controller.childOption(ChannelOption.WRITE_BUFFER_LOW_WATER_MARK, 10);
            controller.childOption(ChannelOption.SO_KEEPALIVE, true);
            controller.childOption(ChannelOption.SO_REUSEADDR, true);
            controller.childOption(ChannelOption.TCP_NODELAY, true);
            controller.childOption(ChannelOption.SO_LINGER, 0);
            controller.childOption(ChannelOption.SO_RCVBUF, 6291456);

            final InetSocketAddress addr = new InetSocketAddress(getInt(prop, server, "port"));
            ChannelFuture future = controller.bind(addr).sync();
            if (future.isSuccess())
                LOG.info("Server Ready to serve on " + addr);
            else
                throw new Exception("Address already in use");
        } catch (Throwable t) {
            bossGroup.shutdownGracefully();
            workerGroup.shutdownGracefully();
            throw new RuntimeException("Initialization failed", t);
        }
    }
}

From source file:io.mycat.netty.NettyServer.java

License:Apache License

private ServerBootstrap configServer() {
    bossGroup = new NioEventLoopGroup(args.bossThreads, new DefaultThreadFactory("NettyBossGroup", true));
    workerGroup = new NioEventLoopGroup(args.workerThreads, new DefaultThreadFactory("NettyWorkerGroup", true));
    userExecutor = createUserThreadExecutor();

    final ProtocolHandler handshakeHandler = newHandshakeHandler(userExecutor);
    final ProtocolHandler protocolHandler = newProtocolHandler(userExecutor);

    ServerBootstrap b = new ServerBootstrap();
    b.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class)
            .childOption(ChannelOption.SO_REUSEADDR, true).childOption(ChannelOption.SO_KEEPALIVE, true)
            .childOption(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT)
            .childOption(ChannelOption.TCP_NODELAY, true);

    if (args.socketTimeoutMills > 0) {
        b.childOption(ChannelOption.SO_TIMEOUT, args.socketTimeoutMills);
    }// ww  w.  ja  v  a2  s.co  m

    if (args.recvBuff > 0) {
        b.childOption(ChannelOption.SO_RCVBUF, args.recvBuff);
    }

    if (args.sendBuff > 0) {
        b.childOption(ChannelOption.SO_SNDBUF, args.sendBuff);
    }

    b.childHandler(new ChannelInitializer<SocketChannel>() {
        @Override
        public void initChannel(SocketChannel ch) throws Exception {
            ch.pipeline().addLast(createProtocolDecoder(), /* createProtocolEncoder(), */ handshakeHandler,
                    protocolHandler);
        }
    });

    return b;
}

From source file:io.reactivex.netty.client.AbstractClientBuilder.java

License:Apache License

public B defaultChannelOptions() {
    return channelOption(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT);
}

From source file:io.reactivex.netty.server.AbstractServerBuilder.java

License:Apache License

public B defaultChannelOptions() {
    channelOption(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT);
    return returnBuilder();
}

From source file:io.reactivex.netty.server.ConnectionBasedServerBuilder.java

License:Apache License

@Override
public B defaultChannelOptions() {
    channelOption(ChannelOption.SO_KEEPALIVE, true);
    childChannelOption(ChannelOption.SO_KEEPALIVE, true);
    childChannelOption(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT);
    return super.defaultChannelOptions();
}

From source file:io.scalecube.socketio.SocketIOServer.java

License:Apache License

private ServerBootstrap createDefaultServerBootstrap() {
      return new ServerBootstrap().group(new NioEventLoopGroup(), new NioEventLoopGroup())
              .channel(NioServerSocketChannel.class).childOption(ChannelOption.TCP_NODELAY, true)
              .childOption(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT);
  }//from   ww  w .j ava 2s  .  c om

From source file:io.urmia.api.Main.java

License:Open Source License

public static void main(String[] args) throws Exception {

    boolean autoRegister = ArgumentParseUtil.isAutoRegister(args);
    String zkURL = ArgumentParseUtil.getZooKeeperURL(args);

    log.info("starting with zk at: {}, auto register: {}", zkURL, autoRegister);

    ns = new ZkNamingServiceImpl(zkURL, AZ);

    Optional<ServiceInstance<NodeType>> meOpt = ns.whoAmI(NodeType.MDS, autoRegister);

    if (!meOpt.isPresent()) {
        System.err.println("unable to find my instance. use auto register or cli-admin to add my node");
        System.exit(1);/*  w  ww.j  av  a  2 s  .c o m*/
        return;
    }

    Runtime.getRuntime().addShutdownHook(new ShutdownHook());

    uuid = new RandomUuidImpl();

    //Properties properties = parseArguments(args);
    EventLoopGroup bossGroup = new NioEventLoopGroup(/*1*/);
    EventLoopGroup workerGroup = new NioEventLoopGroup();

    try {
        me = meOpt.get();

        log.info("my service instance: {}", me);

        BoneCPConfig boneCPConfig = getBoneCPConfig(ns);

        ns.register(me);

        int port = me.getPort();

        JdbcPool pool = new JdbcPool.BoneCPJdbcPool(boneCPConfig);

        MetadataRepository repository = new PsqlMetadataRepositoryImpl(pool);

        mds = new DefaultMetadataServiceImpl(repository);

        // http://normanmaurer.me/presentations/2014-facebook-eng-netty/slides.html#14.0
        ServerBootstrap b = new ServerBootstrap();

        b.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class)
                .childOption(ChannelOption.AUTO_READ, false)
                .childOption(ChannelOption.ALLOCATOR, new PooledByteBufAllocator(true))
                .childHandler(new HttpUploadServerInitializer());

        Channel ch = b.bind(port).sync().channel();
        log.info("object metadata API server (MDS) at port: {}", port);

        ch.closeFuture().sync();
    } finally {
        ns.deregister(me);
        bossGroup.shutdownGracefully();
        workerGroup.shutdownGracefully();
    }
}

From source file:io.urmia.job.Main.java

License:Open Source License

public static void main(String[] args) throws Exception {

    boolean autoRegister = ArgumentParseUtil.isAutoRegister(args);
    String zkURL = ArgumentParseUtil.getZooKeeperURL(args);

    log.info("starting with zk at: {}, auto register: {}", zkURL, autoRegister);

    ns = new ZkNamingServiceImpl(zkURL, AZ);

    Optional<ServiceInstance<NodeType>> meOpt = ns.whoAmI(NodeType.JDS, autoRegister);

    if (!meOpt.isPresent()) {
        System.err.println("unable to find my instance. use auto register or cli-admin to add my node");
        System.exit(1);//ww w. ja va  2s.c  o m
        return;
    }

    Runtime.getRuntime().addShutdownHook(new ShutdownHook());

    EventLoopGroup bossGroup = new NioEventLoopGroup(/*1*/);

    try {
        me = meOpt.get();

        log.info("my service instance: {}", me);

        BoneCPConfig boneCPConfig = getBoneCPConfig(ns);

        ns.register(me);

        int port = me.getPort();

        CuratorFramework client = CuratorFrameworkFactory.newClient(zkURL,
                new ExponentialBackoffRetry(1000, 3));
        client.start();

        JdbcPool pool = new JdbcPool.BoneCPJdbcPool(boneCPConfig);

        MetadataRepository repository = new PsqlMetadataRepositoryImpl(pool);

        MetadataService mds = new DefaultMetadataServiceImpl(repository);

        ServerBootstrap b = new ServerBootstrap();

        b.group(bossGroup).channel(NioServerSocketChannel.class).childOption(ChannelOption.AUTO_READ, true)
                .childOption(ChannelOption.ALLOCATOR, new PooledByteBufAllocator())
                .childHandler(new JobApiServerInitializer(client, mds));

        Channel ch = b.bind(port).sync().channel();
        log.info("Job API Server (JDS) at port: {}", port);

        ch.closeFuture().sync();
    } finally {
        ns.deregister(me);
        bossGroup.shutdownGracefully();
        //workerGroup.shutdownGracefully();
    }
}

From source file:io.urmia.st.Main.java

License:Open Source License

public static void main(String[] args) throws Exception {

    final int port;
    final String base;

    boolean autoRegister = ArgumentParseUtil.isAutoRegister(args);
    String zkURL = ArgumentParseUtil.getZooKeeperURL(args);

    log.info("starting with zk at: {}, auto register: {}", zkURL, autoRegister);

    ns = new ZkNamingServiceImpl(zkURL, AZ);

    Optional<ServiceInstance<NodeType>> meOpt = ns.whoAmI(NodeType.ODS, autoRegister);

    if (!meOpt.isPresent()) {
        System.err.println("unable to find my instance. use auto register or cli-admin to add my node");
        System.exit(1);/*from   w w  w .  j  av  a  2 s.  c o m*/
        return;
    }

    Runtime.getRuntime().addShutdownHook(new ShutdownHook());

    EventLoopGroup bossGroup = new NioEventLoopGroup(/*1*/);
    //EventLoopGroup bossGroup = new EpollEventLoopGroup(1);
    //EventLoopGroup workerGroup = new NioEventLoopGroup();

    try {
        me = meOpt.get();

        log.info("my service instance: {}", me);

        ns.register(me);

        base = me.getUriSpec().getParts().get(0).getValue();
        port = me.getPort();

        if (!(new File(base).isDirectory())) {
            System.err.println("base in not directory: " + base);
            return;
        }

        int nHeapArena = 1;
        int nDirectArena = 1;
        int pageSize = /*8192*/4096;
        int maxOrder = 1;

        // http://normanmaurer.me/presentations/2014-facebook-eng-netty/slides.html#14.0
        ServerBootstrap b = new ServerBootstrap();

        b.group(bossGroup).channel(NioServerSocketChannel.class).childOption(ChannelOption.AUTO_READ, false)
                .childOption(ChannelOption.ALLOCATOR,
                        new PooledByteBufAllocator(true, nHeapArena, nDirectArena, pageSize, maxOrder))
                .childHandler(new HttpUploadServerInitializer(base));

        Channel ch = b.bind(port).sync().channel();
        log.info("object storage Server (ODS) at port: {}", port);

        System.err.println("starting ODS " + me.getId() + " on port: " + port + ", base: " + base);

        ch.closeFuture().sync();
    } finally {
        bossGroup.shutdownGracefully();
        //workerGroup.shutdownGracefully();
    }
}