rabbitmq Header

#rabbitmq
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=longlong
spring.rabbitmq.password=
spring.rabbitmq.virtual-host=/
#消费者数量
spring.rabbitmq.listener.simple.concurrency= 10
spring.rabbitmq.listener.simple.max-concurrency= 10
#消费者每次从队列获取的消息数量
spring.rabbitmq.listener.simple.prefetch= 1
#消费者自动启动
spring.rabbitmq.listener.simple.auto-startup=true
#消费失败,自动重新入队
spring.rabbitmq.listener.simple.default-requeue-rejected= true
#启用发送重试
spring.rabbitmq.template.retry.enabled=true 
spring.rabbitmq.template.retry.initial-interval=1000 
spring.rabbitmq.template.retry.max-attempts=3
spring.rabbitmq.template.retry.max-interval=10000
spring.rabbitmq.template.retry.multiplier=1.0
@Configuration
public class MQConfig {
 
   public static final String HEADER_QUEUE = "header.queue";
   public static final String HEADERS_EXCHANGE = "headersExchage";
   
   /**
    * Header模式 交换机Exchange
    * */
   @Bean
   public HeadersExchange headersExchage(){
      return new HeadersExchange(HEADERS_EXCHANGE);
   }
   @Bean
   public Queue headerQueue1() {
      return new Queue(HEADER_QUEUE, true);
   }
   @Bean
   public Binding headerBinding() {
      Map<String, Object> map = new HashMap<String, Object>();
      map.put("header1", "value1");
      map.put("header2", "value2");
      return BindingBuilder.bind(headerQueue1()).to(headersExchage()).whereAll(map).match();
   }
}
@Service
public class MQSender {

   private static Logger log = LoggerFactory.getLogger(MQSender.class);
   
   @Autowired
   AmqpTemplate amqpTemplate ;
  
   public void sendHeader(Object message) {
      String msg = RedisService.beanToString(message);
      MessageProperties properties = new MessageProperties();
      properties.setHeader("header1", "value1");
      properties.setHeader("header2", "value2");
      Message obj = new Message(msg.getBytes(), properties);
      amqpTemplate.convertAndSend(MQConfig.HEADERS_EXCHANGE, "", obj);
   }   
   
}
@Service
public class MQReceiver {

      private static Logger log = LoggerFactory.getLogger(MQReceiver.class);
  
      @RabbitListener(queues=MQConfig.HEADER_QUEUE)
      public void receiveHeaderQueue(byte[] message) {
         log.info(" header  queue message:"+new String(message));
      }
    
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值