springboot里发布队列消息
为了兼容性和可读性更好,我们一般使用json字符串做为数据载体。
 public void decreaseCallMonitor(CallMonitorInfo callMonitorInfo) throws Exception {
    try {
      rabbitTemplate.convertAndSend(
          AmqpConfig.DATA_COLLECTION_EXCHANGE,
          AmqpConfig.CALLMONITOR_DECREASE_BINDING,
          objectMapper.writeValueAsString(callMonitorInfo)
      );
      logger.debug("Enter {},message:{}", "decreaseCallMonitor", callMonitorInfo.toString());
    } catch (Exception ex) {
      logger.error("MQ.decreaseCallMonitor.error", ex);
    }
  }
springboot里订阅消息
  @RabbitHandler
  @RabbitListener(queues = AmqpConfig.CUSTOMER_TERMINATE_BINDING)
  public void customerTerminate(String data) {
    try {
      TerminateDTO terminateDTO = objectMapper.readValue(data, TerminateDTO.class);
      customerBusinessInfoMapper.updateCustomer_business_info(ImmutableMap.of(
          "status", EnumCustomerStatus.TERMINATE.getCode(),
          "customerId", terminateDTO.getCustomerId()
      ));
    } catch (Exception ex) {
      logger.error("解约同步异常", ex);
    }
  }
通过UI15672手动发消息要注意的地方
- 添加properties,声明它是utf-8及文本类型 - content_encoding:utf-8 content_type:text/plain 
- json字符串需要压缩,把回车换行都去掉,否则会出错 - {"signSalespersonId":1001,"signSalesperson":"mq","signTime":null,"customerId":501806811767111700} 
以上两点注意好,手动发布队列就没有问题了!
 
  
  
  
 
 
  
 
 
 