GH-2837: TCP NIO Prioritize accept

See https://github.com/spring-projects/spring-integration/pull/2837

Give priority to accepting new connections over reading data from
existing connections.
Add a flag to allow users to revert to the previous behavior of
giving reads priority.

**cherry-pick to 5.1.x**
This commit is contained in:
Gary Russell
2019-03-28 11:57:06 -04:00
committed by Artem Bilan
parent 56c4458150
commit 9428e34ee0
5 changed files with 112 additions and 33 deletions

View File

@@ -974,6 +974,10 @@ Alternatively, you can insert a resequencer downstream of the inbound endpoint t
If you set `apply-sequence` to `true` on the connection factory, messages arriving on a TCP connection have `sequenceNumber` and `correlationId` headers set.
The resequencer uses these headers to return the messages to their proper sequence.
IMPORTANT: Starting with version 5.1.4, priority is given to accepting new connections over reading from existing connections.
This should, generally, have little impact unless you have a very high rate of new incoming connections.
If you wish to revert to the previous behavior of giving reads priority, set the `multiAccept` property on the `TcpNioServerConnectionFactory` to `false`.
==== Pool Size
The pool size attribute is no longer used.

View File

@@ -36,3 +36,6 @@ See <<remote-persistent-flf>> for more information.
The length header used by the `ByteArrayLengthHeaderSerializer` can now include the length of the header in addition to the payload.
See <<tcp-codecs>> for more information.
When using a `TcpNioServerConnectionFactory`, priority is now given to accepting new connections over reading from existing connections, but it is configurable.
See <<note-nio>> for more information.