-
AMQP协议模型
查看全部 -
RabbitMQ的特点
查看全部 -
RabbitMQ的特点:
- RabbitMQ底层采用Erlang语言进行编写
- 开源、性能优秀、稳定性好
- 与SpringAMQP完美的整合、API丰富
- 集群模式丰富、表达式配置、HA模式、镜像队列模型
- 保证数据不丢失的前提做到高可靠性、可用性
查看全部 -
RabbitMQ定义
查看全部 -
## RabbitMQ核心概念
server:又称Broker,接受客户端的连接,实现AMQP实体服务
Connection:连接,应用程序与Broker的网络连接
Channel:网络信道,几乎所有的操作都在Channel中进行,Channel是进行消息读写的通道。
Message:消息,服务器和应用程序之间传送的数据,由Properties和Body组成。Properties可以对消息进行装饰,比如消息的优先级、延迟等属性;body则就是消息体内容
Virtual host:虚拟地址,用于逻辑隔离,是最上层的消息路由;一个Virtual host有若干个Exchange和Queue,同一个Virtual Host里面不能有相同名称的Exchange和Queue
Exchang:交换机,接收信息,根据路由键转发消息到绑定的Queue
Binding:Exchang和Queue之间的虚拟连接,binding中可以包含routing key(路由键)
Routing key:一个路由规则,Virtual host可用它来确定如何路由一个特定消息
Queue:也称为Message Queue,消息队列,保存消息并将它们转发给消费者
查看全部 -
消息消费时,抛出一个异常: ...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删了。
查看全部 -
模型模型模型
查看全部 -
AMQP协议模型
查看全部 -
@RabbitListener
查看全部 -
spring-boot-starter-web
查看全部 -
Consumer配置
查看全部 -
-测试用例
查看全部 -
OrderSender
查看全部 -
Order实体类
查看全部 -
t_order表
查看全部
举报