0

问题一:

我在我的工作负载生成器客户端中使用计时器将消息流式传输到服务器。使用多个 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 的方法吗,就像在另一个线程中讨论的那样?

4

1 回答 1

1

q1:我不确定我是否正确理解了 Q1。只是,我可以说 HashedWeelTimer 是一个单线程定时器任务管理器 -> 你传入的所有任务都由一个线程执行。

q2:我不清楚

于 2012-04-18T12:53:25.963 回答