[rabbitmq-discuss] Java Client Changes
rob at rabbitmq.com
Fri Oct 15 11:00:41 BST 2010
On 15 Oct 2010, at 10:03, mabrek <mabrek at gmail.com> wrote:
> On 10/12/2010 05:39 PM, Rob Harrop wrote:
>> Summary of changes:
>> * Dispatch to consumers now happens on a separate thread from the Connection thread
> Have you considered switching to NIO with one io-loop thread per connection/several connections?
> Something like Netty or Apache Mina.
We've been chewing over NIO a bit recently. It's possible that we'll switch over but currently I think 1 IO thread per connection is sufficient.
>> * Each Channel has its own dispatch thread
> It can result in creating too many threads.
This is bounded by the number of channels.
>> * Channels are safe for use from multiple threads (not suitable for heavy concurrent usage though)
> Consider web appication scenario. It sends a message per incoming request. Requests are served from several threads (up to 100) with a heavy concurrency (hundreds requests per second). So application needs either thread-safe non-blocking publisher that is suitable for heavy concurrency or very light-weight non-thread-safe publisher that can be created per incoming request and deleted after use.
Channels are pretty light to create. But I can certainly see a case where thread usage can go crazy.
I'm on vacation this weekend but I'm pondering a solution to general thread pooling that will allow for a pluggable ExecutorService. The solution I have in mind will guarantee per consumer ordering and is not susceptible to stalling.
> Anton Lebedevich.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the rabbitmq-discuss