Netty调整高性能UDP服务器

时间:2016-03-21 09:55:37

标签: java performance netty nio

我有一台使用Netty的UDP服务器。

架构非常简单:

启动时,会创建并绑定一个Channel。管道由一个处理程序组成,该处理程序将传入的UDP数据包分派给线程池。因此,UDP数据包同时处理。处理UDP分组涉及一些IO(例如,访问数据库)。处理完UDP数据包后,会发回响应。

我正在寻找提高性能的信息,因为服务器不能满足我们的吞吐量要求。

我的一些代码:

Bootstrap bootstrap = new Bootstrap()
    .group(new EpollEventLoopGroup(1))
    .channel(EpollDatagramChannel.class)
    /* Is the following allocator recommended? */
    .option(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT)
    .handler(channelInitializer);

ChannelFuture future = bootstrap.bind(host, port).await();

我的遗嘱执行人服务:

executorService = new ThreadPoolExecutor(
    nbWorkerThreads, /* Optimal number of threads? */
    nbWorkerThreads,
    0L,
    TimeUnit.MILLISECONDS,
    new LinkedBlockingQueue<Runnable>());

我用来发送回复的代码:

ctx.channel().writeAndFlush(new DatagramPacket(Unpooled.wrappedBuffer(bytes),  ctx.sender()));

0 个答案:

没有答案