From 4d4d97419cab54f28e30e01c65e1d72d2512ca82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=83=E9=94=8B?= Date: Tue, 3 Jul 2018 13:42:31 +0800 Subject: [PATCH] =?UTF-8?q?fixed=20issue=20#726,=20=E5=8E=BB=E6=8E=89socke?= =?UTF-8?q?t=20receiveBuffer/sendBuffer=E7=9A=84=E8=AE=BE=E7=BD=AE,?= =?UTF-8?q?=E5=BD=B1=E5=93=8D=E7=BD=91=E7=BB=9C=E5=90=9E=E5=90=90=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../driver/mysql/packets/client/BinlogDumpCommandPacket.java | 2 +- .../canal/parse/driver/mysql/socket/BioSocketChannelPool.java | 2 -- .../parse/driver/mysql/socket/NettySocketChannelPool.java | 3 +-- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/driver/src/main/java/com/alibaba/otter/canal/parse/driver/mysql/packets/client/BinlogDumpCommandPacket.java b/driver/src/main/java/com/alibaba/otter/canal/parse/driver/mysql/packets/client/BinlogDumpCommandPacket.java index f0fba11a..70624549 100644 --- a/driver/src/main/java/com/alibaba/otter/canal/parse/driver/mysql/packets/client/BinlogDumpCommandPacket.java +++ b/driver/src/main/java/com/alibaba/otter/canal/parse/driver/mysql/packets/client/BinlogDumpCommandPacket.java @@ -54,7 +54,7 @@ public class BinlogDumpCommandPacket extends CommandPacket { // 1. write 4 bytes bin-log position to start at ByteHelper.writeUnsignedIntLittleEndian(binlogPosition, out); // 2. write 2 bytes bin-log flags - int binlog_flags = 0; + int binlog_flags = BINLOG_DUMP_NON_BLOCK; binlog_flags |= BINLOG_SEND_ANNOTATE_ROWS_EVENT; out.write(binlog_flags); out.write(0x00); diff --git a/driver/src/main/java/com/alibaba/otter/canal/parse/driver/mysql/socket/BioSocketChannelPool.java b/driver/src/main/java/com/alibaba/otter/canal/parse/driver/mysql/socket/BioSocketChannelPool.java index 3af1d469..dcc17bad 100644 --- a/driver/src/main/java/com/alibaba/otter/canal/parse/driver/mysql/socket/BioSocketChannelPool.java +++ b/driver/src/main/java/com/alibaba/otter/canal/parse/driver/mysql/socket/BioSocketChannelPool.java @@ -11,8 +11,6 @@ public abstract class BioSocketChannelPool { public static BioSocketChannel open(SocketAddress address) throws Exception { Socket socket = new Socket(); - socket.setReceiveBufferSize(32 * 1024); - socket.setSendBufferSize(32 * 1024); socket.setSoTimeout(BioSocketChannel.SO_TIMEOUT); socket.setTcpNoDelay(true); socket.setKeepAlive(true); diff --git a/driver/src/main/java/com/alibaba/otter/canal/parse/driver/mysql/socket/NettySocketChannelPool.java b/driver/src/main/java/com/alibaba/otter/canal/parse/driver/mysql/socket/NettySocketChannelPool.java index f9428c4b..4a8ece1b 100644 --- a/driver/src/main/java/com/alibaba/otter/canal/parse/driver/mysql/socket/NettySocketChannelPool.java +++ b/driver/src/main/java/com/alibaba/otter/canal/parse/driver/mysql/socket/NettySocketChannelPool.java @@ -37,11 +37,10 @@ public abstract class NettySocketChannelPool { static { boot.group(group) .channel(NioSocketChannel.class) - .option(ChannelOption.SO_RCVBUF, 32 * 1024) - .option(ChannelOption.SO_SNDBUF, 32 * 1024) .option(ChannelOption.TCP_NODELAY, true) // 如果是延时敏感型应用,建议关闭Nagle算法 .option(ChannelOption.SO_KEEPALIVE, true) + .option(ChannelOption.SO_REUSEADDR, true) .option(ChannelOption.RCVBUF_ALLOCATOR, AdaptiveRecvByteBufAllocator.DEFAULT) .option(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT) //