【问题标题】:Should I share same ByteBuf allocator among different netty ServerChannels?我应该在不同的 netty ServerChannels 之间共享相同的 ByteBuf 分配器吗?
【发布时间】:2017-01-16 12:33:56
【问题描述】:

我有 8 个 Netty 服务器通道监听不同的端口(HTTP/S、WebSocket、MQTT、TCP 等)。从源代码中我看到所有这些服务器都将共享相同的分配器 - ByteBufAllocator.DEFAULT。所以我的问题 - 这是在不同服务器之间使用相同分配器的推荐方法吗?或者我可以为每个服务器创建单独的分配器?像这样:

ByteBufAllocator allocator = new PooledByteBufAllocator();
b.childOption(ChannelOption.ALLOCATOR, allocator)
b.option(ChannelOption.ALLOCATOR, allocator)

【问题讨论】:

    标签: netty


    【解决方案1】:

    好的,所以对于那些有同样问题的人 - 最好重用默认分配器,因为您的应用程序实际上会分配更少的内存。但是,为每个侦听套接字创建自己的分配器将降低通道之间的争用程度。但对于大多数应用来说,这并不是单一分配器更好的情况。

    【讨论】:

    • 您是否实际衡量过渠道间争用的影响,或者您怎么知道?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    • 2014-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多