Hello, according to the definition of SO_BACKLOG below, the connection would be refused in case of the queue is full, how it refuse the connection? would the server send a TCP message to the client, and then the client would send a re-connection when received the connection refuse/timeout error?
*Description of SO_BACKLOG option:* The maximum queue length for incoming connection indications (a request to connect) is set to the backlog parameter. If a connection indication arrives when the queue is full, *the connection is refused*. On Thursday, July 20, 2017 at 2:50:30 PM UTC+8, Ronggen Liu wrote: > > Hello, > > *problem*: > some connections were lost when there are too many clients were trying to > connect to the server during a short time, for example, send out about 10k > connections during about 3 seconds. > > *findings:* > as i know, all the connections would be accepted in method doReadMessage of > NioServerSocketChannel, and, in fact, we did find out that some > connections were not accepted from there, but, actually, the TCP have been > created successfully with completed 3-ways handsharke. > meanwhile, we found, to some degree, we can avoid this issue by increasing > the option SO_BACKLOG of ChannelOption, currently, we set it with 8, > should be a little bit low. > > *questions:* > how to handle this issue? as i know, the client should receive connection > refused error when the number of the connections exceed the SO_BACKLOG, but > the client didn't receive it. > > Thanks, > Gary > -- You received this message because you are subscribed to the Google Groups "Netty discussions" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/netty/2aea1140-a98f-471e-bf01-7412b5bbe4c8%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
