I use rabbitmq as consumer.The procedur send to almost 200 messages per second.Size of message ~4.65KB and also the envorinment of consumers enough capacity. No matter what I do, the performance cannot exceed 40~60 messages per second altough queue has a lot of messages. My rabbit configuration like this
@Bean
public SimpleMessageListenerContainer container(ConnectionFactory connectionFactory, MessageListenerAdapter messageListener) {
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
container.setMessageListener(messageListener);
container.setQueueNames(this.queue);
container.setConcurrentConsumers(80);
container.setMaxConcurrentConsumers(400);
container.setConsecutiveActiveTrigger(1);
container.setConsecutiveIdleTrigger(1);
container.setPrefetchCount(400);
container.setConsumerStartTimeout(100);
container.setReceiveTimeout(100);
container.setTxSize(200);
container.setAcknowledgeMode(AcknowledgeMode.AUTO);
container.setAutoStartup(true);
return container;
}
@Bean
public MessageListenerAdapter messageListenerAdapter(NotificationListener listener) {
return new MessageListenerAdapter(listener, "handleMessage");
}
public void handleMessage(final byte[] message) throws Throwable {
Date dt1 = new Date();
System.out.println("Received" + dt1);
}
I tried @RabbitListener annotation and also channel.basicConsume() method but not working