Load balancing przetwarzania requestów w netty 4

Load balancing przetwarzania requestów w netty 4
0

Hej,

Mam pytanie o serwer pisany w netty

Kopiuj
Bootstrap bootstrap = new Bootstrap()
                    .group(bossGroup)
                    .channel(NioDatagramChannel.class)
                    .handler(new ChannelInitializer<DatagramChannel>() {
                        @Override
                        protected void initChannel(DatagramChannel ch) throws Exception {
                            ch.pipeline()
                                    .addLast(workerGroup, "handler", new ServerHandler(workerGroup));
                        }
                    });
            System.out.println(Util.msg("Bootstrapping done"));
            ChannelFuture channelFuture = bootstrap.bind(PORT).syncUninterruptibly();
            System.out.println(Util.msg("Bound"));

            channelFuture.channel().closeFuture().addListener(new ChannelFutureListener() {
                @Override
                public void operationComplete(ChannelFuture future) throws Exception {
                    System.out.println(Util.msg("Server closing"));
                    future.channel().close();
                }
            }).sync();

Util.msg pisze wiadomość + wątek wykonujacy (taki ubogi logger).

Pytanie jest takie: dlaczego w netty4 nie można osiągnąć wykonania handlera przez różne wątki z pooli worker?
Zawsze używany jest tylko jeden... Oczywiście w handlerze można po prostu oddelegować wykonanie do jakiegoś executora ale nie o to przecież chodzi...
Czy ktoś jest obeznany z netty 4 (wiem ze w poprzednich wersjach był OrderedMemoryCostamExecutor i dało się to osiągnąć) i wie czemu teraz tak niedorzecnie to spieprzono?

SZ
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:616
0

Może wprowadzili koncepcje z nodejs EvenLoop

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.