RabbitMQ message consumers stop using messages

Our team is in peak sprint to choose between ActiveMQ or RabbitMQ. We made 2 small spikes of the producer / consumer, sending an object message with an array of 16 lines, a timestamp and 2 integers. The spikes are in order on the machines of our developers (messages are well spent).

Then came the benches. We first noticed that on our machines, when we sent a lot of messages, the consumer sometimes hung. He was there, but messsages were copied in line.

When we went to the plate with the plate:

  • cluster of 2 rabbitmq devices 4 cores / 3.2 GHz, 4 GB RAM, load balance using VIP
  • from one to six consumers working on rabbitmq machines, storing messages in mysql DB (the same type of machine for the database)
  • 12 manufacturers running 12 AS (tomcat) machines are attacked by jmeter running on another machine. The load is between 600 and 700 HTTP requests per second, on servlets that create the same load of RabbitMQ messages.

We noticed that sometimes , consumers hang (well, they are not blocked, but they no longer consume messages). We see that since each consumer saves about 100 ms / s in the database, therefore, when one stops, all messages saved in a few seconds in the database fall with the same ratio (if, say, 3 consumers stop, we drop to 600 ms / s to 300 ms / s).

, jmeter ( 600 msg/sec). , "".

, , , , jmeter.

. , .

. rabbitmq, , ?

.

+5
4

basic.consume:

channel.basicQos(100);

channel.basicConsume, 100 , QueueingConsumer.

+4

RabbitMQ STOMP. .

STOMP?

+1

RabbitMQ . .

0

All Articles