@Configuration
public class RabbitMQConfig {
@Bean
public ConnectionFactory connectionFactory() {
CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
connectionFactory.setHost("localhost");
connectionFactory.setPort(5672);
connectionFactory.setUsername("guest");
connectionFactory.setPassword("guest");
connectionFactory.setVirtualHost("/");
connectionFactory.setChannelCacheSize(10);
connectionFactory.setConnectionCacheSize(10);
connectionFactory.setConnectionLimit(100);
return connectionFactory;
}
}
@RestController
public class MessageController {
@Autowired
private AmqpTemplate amqpTemplate;
@PostMapping("/sendBatchMessages")
public String sendBatchMessages(@RequestBody List<String> messages) {
amqpTemplate.invokeBatchOperations(messages);
return "Batch messages sent successfully!";
}
}
@Configuration
public class RabbitMQConfig {
@Bean
public SimpleMessageListenerContainer messageListenerContainer(ConnectionFactory connectionFactory) {
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(connectionFactory);
container.setQueueNames("queue_name");
container.setMessageListener(message -> {
processMessage(message);
channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
});
return container;
}
}