ChannelGroup发送处理程序级别

时间:2018-08-03 10:08:09

标签: performance broadcast

ChannelGroup发送处理程序级别?

我是来自中国的Simon,我们的项目基于Netty。 我们在ChannelPipeline中有3个处理程序,用于将对象消息发送给客户端。

1个BusinessHandler-2个ActionEncoder-3个FrameEncoder

1个用于处理业务逻辑(例如保存到数据库)的BusinessHandler。

2个ActionEncoder,用于将编码器对象转换为ByteBuf。

3个用于帧头和脚的FrameEncoder。

全部。

当我们向所有客户端发送带有ChannelGroup的对象消息时 Netty需要为每个处理程序(1-2-3)处理每个客户通道,就像:

for(channel:Channels){
    for(handler:Handlers){
        data;
    }
    send;
}

我认为这个过程很缓慢,希望ChannelGroup这样发送: 首先处理所有处理程序,将对象消息发送到ByteBuf, 接下来发送给所有具有ChannelGroup的客户端。

for(handler:Handlers){
    data;
}
for(channel:Channels){
    send;
}

请告诉我知道怎么做?

0 个答案:

没有答案