springboot~rabbitmq自己通過UI手動釋出佇列需要注意的地方
阿新 • • 發佈:2018-11-11
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}
以上兩點注意好,手動釋出佇列就沒有問題了!