其他分享
首页 > 其他分享> > Spring Boot中集成 RabbitMQ

Spring Boot中集成 RabbitMQ

作者:互联网

  <!-- 在 pom 文件中添加 -->
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
  </dependency>
#修改 application.properites文件
# 配置集群的VIP # 192.168.174.150:5672
spring.rabbitmq.addresses=192.168.174.150:5672
# 配置真实IP也可以
#spring.rabbitmq.addresses=192.168.174.140:5672,192.168.174.141:5672     
# 配置账号
spring.rabbitmq.username=admin
spring.rabbitmq.password=123456

spring.rabbitmq.connection-timeout=15000
@Configuration
public class RabbitConfig {
	private Logger log = LoggerFactory.getLogger(RabbitConfig.class);
  
  // 这里配置,配置文件就不生效了
	@Bean
  public RabbitTemplate rabbitTemplate(CachingConnectionFactory connectionFactory) {
      // 生产者:confirm 模式 , 默认是 false
      connectionFactory.setPublisherConfirms(true);
      // 生产者:return机制 , 默认是 false
      connectionFactory.setPublisherReturns(true);
      RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);
      // 生产者: 与return机制结合配置次属性
      rabbitTemplate.setMandatory(true);
      // 发送确认消息,在生产者发送消息后,需要对rabbitTemplate设置ConfirmCallback对象
      rabbitTemplate.setConfirmCallback((correlationData, ack, cause) -> {
        log.info("消息回调id:" + correlationData);
        if (ack) {
            log.info("消息成功消费");
        } else {
            log.info("消息消费失败:" + cause);
        }
      }
      // 启动消息失败返回,比如路由不到队列时触发回调
      rabbitTemplate.setReturnCallback((message, replyCode, replyText, exchange, routingKey) -> log.info("消息丢失:exchange({}),route({}),replyCode({}),replyText({}),message:{}", exchange, routingKey, replyCode, replyText, message));
      
      return rabbitTemplate;
    }
}
Dong滴个Dong 发布了5 篇原创文章 · 获赞 2 · 访问量 727 私信 关注

标签:rabbitTemplate,return,String,exchange,Spring,Boot,RabbitMQ,public,subject
来源: https://blog.csdn.net/justfamily/article/details/104050907