问题1:
我在工作负载生成器客户端中使用计时器将消息流式传输到服务器。使用多个timertasks对创建的线程数或Channel的共享有什么影响吗?
我想了解这是否是生成负载的首选方法。我可能会以这种方式出现其他指数延迟或其他类型的延迟。
public class TestClientHandler extends SimpleChannelHandler {
private Timer timer = new HashedWheelTimer();
Channel channel;
public TestClientHandler() {
timer.newTimeout( new DataStreamer( this ),
1000,
TimeUnit.MILLISECONDS );
}
@Override
public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) {
e.getCause().printStackTrace();
org.jboss.netty.channel.Channel ch = e.getChannel();
ch.close();
}
@Override
public void channelConnected( ChannelHandlerContext ctx,
ChannelStateEvent e) {
this.channel = e.getChannel();
ChannelFuture future = e.getChannel().write( "SOMETHING" );
}
}
问题2:
如何针对不同类型的请求维护不同的渠道?是否有基于优先级的想法? OrderAwareMemoryHandler是推荐的插入PriorityBlockingQueue的方式,就像在另一个线程中讨论一样吗?
答案 0 :(得分:1)
问题1:我不确定我是否正确理解了Q1。只是,我可以说HashedWeelTimer是一个单线程计时器任务管理器 - >您传入的所有任务都由一个线程执行。
q2:我不清楚