Я новичок в Netty, но, к сожалению, для начинающего нет подробной документации/учебника.Использование EventLoopGroup в 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();
}
}
В этом случае каждая задача имеет свой собственный клиент и клиенты строят свои собственные каналы для приема сообщений.
Должен ли я создать одиночный EventLoopGroup
в executeTasks и предоставить его Клиентам, которые будут использоваться при построении их канала. Если это так, в чем преимущество использования EventLoopGroup
? Что он делает на заднем плане?
Спасибо за ответ. Я обновил вопрос на примере. Надеюсь, теперь это становится яснее. – anlkn
NettyChannelBuilder находится в пакете grpc не netty, я не знаю много о том, как grpc выглядит так, как будто они обрабатывают создание цикла событий для вас. Я бы не стал беспокоиться о передаче цикла событий, пока вам не понадобится дополнительный контроль. –
Это просто специальный пул потоков. –