spring注解里面的属性通过el表达式读取配置文件的值
讲的不错,重在设计思路。
取注解中的配置属性
消费端消息监听信息写道配置文件中

消息可靠性流程图
消息消费时,抛出一个异常: ...Retries exhausted for message...
// 确认接收
Long deliveryTag = (Long) headers.get(AmqpHeaders.DELIVERY_TAG);
try {
// 批量接收 false
channel.basicAck(deliveryTag, false);
} catch (IOException e) {
e.printStackTrace();
}
// 异常信息
o.s.a.r.r.RejectAndDontRequeueRecoverer : Retries exhausted for message (Body:'[B@46ba68ad(byte[204])' MessageProperties [headers={}, contentType=application/x-java-serialized-object, contentLength=0, receivedDeliveryMode=PERSISTENT, priority=0, redelivered=true, receivedExchange=order-exchange, receivedRoutingKey=order.abcd, deliveryTag=1, consumerTag=amq.ctag-kTHEUvVt2M4G9i3E26ajFQ, consumerQueue=order-queue])
Caused by: org.springframework.amqp.support.converter.MessageConversionException: failed to convert serialized Message content
Caused by: java.lang.IllegalArgumentException: Could not deserialize object
Caused by: java.io.InvalidClassException: com.example.rabbitmq.entity.Order; local class incompatible: stream classdesc serialVersionUID = -1776216368770403457, local class serialVersionUID = -1730674339131758209
// 我想是我在创建Order对象时,没有添加serialVersionUID原因。
// 我在重启消费端的时候,抛出这样的异常,最后我把Queue删了。