β

springboot~rabbitmq自己通过UI手动发布队列需要注意的地方

Harries Blog™ 149 阅读

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);
    }
  }

spring boot里订阅消息

@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);
    }
  }

通过 UI 15672手动发消息要注意的地方

  1. 添加properties,声明它是utf-8及文本类型
content_encoding:utf-8
content_type:text/plain
  1. js on字符串需要压缩,把回车换行都去掉,否则会出错
{"signSalespersonId":1001,"signSalesperson":"mq","signTime":null,"customerId":501806811767111700}

以上两点注意好,手动发布队列就没有问题了!

原文

http ://www.cnblogs.com/lori/p/9805575.html

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。 PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处: Harries Blog™ » springboot~rabbitmq自己通过UI手动发布队列需要注意的地方

作者:Harries Blog™
追心中的海,逐世界的梦