- 配置文件

- 生产者

- 配置消费者容器
@Configuration
public class OverdueRabbitmqConfig {
@Value("${overdue.listener.prefetch}")
private Integer prefetch;
@Value("${overdue.consumer.concurrency}")
private Integer concurrentconsumers;
@Bean(name = "overdueConnectionFactory")
public ConnectionFactory firstConnectionFactory(
@Value("${spring.rabbitmq.addresses}") String addresses,
@Value("${spring.rabbitmq.username}") String username,
@Value("${spring.rabbitmq.password}") String password,
@Value("${spring.rabbitmq.virtual-host}") String virtualHost) {
CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
connectionFactory.setAddresses(addresses);
connectionFactory.setUsername(username);
connectionFactory.setPassword(password);
connectionFactory.setVirtualHost(virtualHost);
return connectionFactory;
}
/**
/**
* 声明collection containerFactory
*/
@Bean(name = "collectionContainerFactory")
public SimpleRabbitListenerContainerFactory firstSimpleRabbitListenerContainerFactory2(
SimpleRabbitListenerContainerFactoryConfigurer config,
@Qualifier("overdueConnectionFactory") ConnectionFactory connectionFactory) {
SimpleRabbitListenerContainerFactory containerFactory=new SimpleRabbitListenerContainerFactory();
containerFactory.setAcknowledgeMode(AcknowledgeMode.MANUAL);
containerFactory.setPrefetchCount(prefetch);
containerFactory.setMaxConcurrentConsumers(50);
config.configure(containerFactory,connectionFactory);
return containerFactory;
}
}
@RabbitHandler
@RabbitListener(queues = "${collection.consumer.calculate.tn.queue}",
containerFactory = "collectionContainerFactory",
concurrency = "${collection.calculate.consumer.concurrency}"
)
public void collectionConsumerTn(String testMessage, Channel channel, Message message) {
try {
YxPreContractResponse yxPreContractResponse = MAPPER.readValue(testMessage, new TypeReference<YxPreContractResponse>() {});
*
* 在mq管理系统中,添加好队列和交换机,否则可能会链接不上而报错。