wouldn’t it be better to implement this at the protocol level instead of TCP ?

for example with a 503 response for a web server.

> On May 10, 2017, at 8:31 AM, 'Norman Maurer' via Netty discussions 
> <[email protected]> wrote:
> 
> 
> Hey James,
> 
> comments inline.
> 
> On 10. May 2017 at 04:22:20, James Roper ([email protected] 
> <mailto:[email protected]>) wrote:
> 
>> Hi all,
>> 
>> I just want to validate my understanding of Netty here and how server 
>> connections are accepted.  A typical Netty server has two conceptual 
>> channels, one channel is effectively a channel of channels, representing a 
>> stream of incoming connections, and that one creates a new channel pipeline 
>> to handle each incoming connection.
> 
> 
> Correct.
> 
>> 
>> 
>> On the server channel of channels, if you set auto read to false, then this 
>> will allow you to backpressure on the incoming stream of connections, which 
>> would allow you to use this to implement a connection limit.  In that case, 
>> if you did back pressure (ie, by not invoking read() when you receive a read 
>> complete event), Netty would stop accepting new connections, which would 
>> cause any subsequent connections received to fill up the OS connection 
>> backlog, until the SO_BACKLOG limit is reached, at which point, the OS will 
>> start rejecting connections outright.
> 
> Correct, that its not a real “rejection” but more like “dropping on the 
> floor”.
> 
>> 
>> 
>> Is my understanding here correct?  Before we go and implement it ourselves, 
>> does Netty provide any built in channel handlers that implement connection 
>> limit logic?  I imagine it wouldn't be hard to do - you just need a way to 
>> communicate from the child channel pipelines when a channel has been closed 
>> so that the connection counter can be decremented and read can be invoked 
>> again on the channel receiving the connections.
> 
> 
> There is no ChannelHandler doing this at the moment but its on my 
> ever-growing to-do list. As you stated it should not be too hard to do. Just 
> have a ChannelHandler that is shared between accepted connections and have a 
> counter that is increased / decreased. Once you hit the limit call 
> “channel.parent().config.setAutoRead(false)” and once you want to accept more 
> use “channel.parent().confing.setAutoRead(true)”.
> 
>> 
>> 
>> And finally, all this is in the context of Netty 4 - does the same apply to 
>> Netty 3, using Channel.setReadable() to implement the backpressure?  Play of 
>> course is on Netty 4, but we have a very large user who are asking about 
>> this for an older version of Play which is on Netty 3.
> 
> In theory yes, that said I would look again into the netty 3 code base if 
> there are any gotchas.
> 
>> 
>> 
>> Cheers,
>> 
>> James
>> --
>> 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] 
>> <mailto:[email protected]>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/netty/43802c13-afb0-40e9-99fc-ff0b52ed3f9a%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/netty/43802c13-afb0-40e9-99fc-ff0b52ed3f9a%40googlegroups.com?utm_medium=email&utm_source=footer>.
>> For more options, visit https://groups.google.com/d/optout 
>> <https://groups.google.com/d/optout>.
> 
> 
> -- 
> 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] 
> <mailto:[email protected]>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/netty/CAKrGPjwCsERNG-qEPzgk%2BCdD7A81sJvMAuqAHvg5YRwamEPXNg%40mail.gmail.com
>  
> <https://groups.google.com/d/msgid/netty/CAKrGPjwCsERNG-qEPzgk%2BCdD7A81sJvMAuqAHvg5YRwamEPXNg%40mail.gmail.com?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
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/F8C75F27-3627-4122-B287-E5A66A7D6947%40julienviet.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to