[rabbitmq-discuss] Basic.Acks terribly slow

Simon MacMullen simon at rabbitmq.com
Fri May 9 15:04:47 BST 2014


On 09/05/14 14:03, Arun Rao wrote:
> Thanks Simon.
>
> The messages are non-persistent but the queues are mirrored to exactly
> one other node on a 4-node cluster.

Ah right, that might also account for the latency if there are some 
internal network round-trips before a messages is confirmed.

> I was thinking if I created an
> exchange for each routing key, rather than use one exchange and then
> route by routing key, would that help?  (I am not trying work around
> anything but I wanted to know if I am overloading one Exchange when I
> could create multiple exchanges. I understand that Exchanges are always
> HA'ed (even when not specified) in a cluster. Does that mean that
> routing and acknowledging to the messages happens out of just one node
> on a 4-node cluster?

No - exchanges are stateless routing logic so when we say "they are 
always HA" we mean the logic will be executed on whichever node the 
results are needed.

> How about Heartbeats? I am not saying this is a
> bottleneck but I am trying to understand the functionality.)

Heartbeaters live on the same node as the channel they are heartbeating for.

> One other key thing I missed to mention:
> (http://www.rabbitmq.com/releases/rabbitmq-dotnet-client/v3.3.1/rabbitmq-dotnet-client-3.3.1-user-guide.pdf)
> /
> /
> /There are two styles of interaction available to ModelBase:/
> /• synchronous, RPC-style interaction, e.g. ExchangeDeclare, BasicGet
> and BasicConsume./
> /• asynchronous, event-style interaction, e.g. BasicAck, BasicPublish./
> /
> /
> Is it true that .NET client library considers BasicPublish and BasicAck
> as Events (on a tcp connection), meaning it is not holding up any resources?

Yes.

> (BTW, I am not a developer but I Admin RabbitMQ clusters in production.)
> The other take away is to allow publish multiple messages and let .NET
> client library keep track of the delivery-tag counts from the server.

Definitely - that's likely to make an enormous difference.

Cheers, Simon

-- 
Simon MacMullen
RabbitMQ, Pivotal


More information about the rabbitmq-discuss mailing list