1. Текущая проблема
- 1 Netty-клиент, 1 Netty-сервер
- В Netty-клиенте 3 различных потока kafka отправка сообщения на netty-сервер с помощью 1 ChannelHandler
- На стороне клиента netty, похоже, что обработчик канала отправляет сообщение каждого потока сразу. Но на стороне сервера netty кажется, что netty читает несколько сообщений, отправленных сразу из 3 потоков kafka.
- Я проверил это, зарегистрировавшись: Изображение на стороне клиента , Журнал на стороне сервера изображение
2. Код
Код клиента Netty
public class ClientHandler extends ChannelInboundHandlerAdapter {
...
@Override
public void channelActive(ChannelHandlerContext ctx) {
log.debug("channelActive");
this.ctx = ctx;
}
public void sendMessage(String message) {
log.info("Sent message: {}", message);
ByteBuf messageBuffer = Unpooled.buffer();
messageBuffer.writeBytes(message.getBytes());
ctx.writeAndFlush(messageBuffer);
}
Код сервера Netty
public class NettyServerHandler extends ChannelInboundHandlerAdapter {
...
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) {
NettyServer.ServerStatus.increaseAndGetTotalReadMsg();
ByteBuf byteBuf = (ByteBuf)msg;
log.info(byteBuf.toString(Charset.defaultCharset()));
byteBuf.release();
}
}
Здесь говорит о том, что writeAndFlush
поточно-ориентирован, но, похоже, нет. Это нормальный случай или нет?