在Netty中使用具有多个通道的EventLoopGroup

时间:2016-10-16 15:43:09

标签: java netty event-loop

我是Netty的新手但不幸的是,似乎没有针对初学者的详细文档/教程。

我有多个线程,每个线程使用NettyChannelBuilder创建单独的客户端以连接到不同的通道。我们的想法是每个频道都会发送&从不同的主机接收不同类型的消息。例如。它看起来像这样:

class MyServiceClass{
  void executeTasks() {
      ...
      //here multiple tasks are executed in a for loop
      executorService.execute(new Task(new Client());
      ...
  }
}

class Client {
  ..
  void connect() {
      channel = NettyChannelBuilder.forAddress(host, port).build();
  }
}

在这种情况下,每个任务都有自己的客户端,客户端正在构建自己的通道来接收消息。

我应该在executeTasks上创建一个EventLoopGroup并将其提供给在构建其频道时使用的客户端。 如果是这种情况,使用EventLoopGroup有什么好处?它在后台究竟做了什么?

1 个答案:

答案 0 :(得分:0)

我不确定你在问什么。 EventLoopGroups只是用于netty的一组线程。使用netty你的客户端将在EventLoopGroup上,并将被分配给循环中的线程,因此有些可能在同一个线程上。

我个人认为文档很棒,但它绝对不是专为初学者设计的框架。