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删了。