
RabbitMQ
fldjsaldkfjoeiaf
这个作者很懒,什么都没留下…
展开
-
RabbitMQ死信队列、延时队列
RabbitMQ死信队列、延时队列消息被消费方否定确认,使用 channel.basicNack 或 channel.basicReject ,并且此时requeue 属性被设置为 false 。消息在队列的存活时间超过设置的TTL时间。消息队列的消息数量已经超过最大队列长度。那么该消息将成为“死信”。“死信”消息会被RabbitMQ进行特殊处理,如果配置了死信队列信息,那么该消息将会被丢进死信队列中,如果没有配置,则该消息将会被丢弃为每个需要使用死信的业务队列配置一个死信交换机,这里同一个项原创 2021-11-07 09:47:42 · 157 阅读 · 0 评论 -
RabbitMQ事务消息
RabbitMQ事务消息通过对信道的设置实现channel.txSelect();通知服务器开启事务模式;服务端会返回Tx.Select-Okchannel.basicPublish;发送消息,可以是多条,可以是消费消息提交ackchannel.txCommit()提交事务;channel.txRollback()回滚事务;消费者使用事务:autoAck=false,手动提交ack,以事务提交或回滚为准;2.autoAck=true,不支持事务的,也就是说你即使在收到消息之后在回滚事务也是原创 2021-11-07 09:35:35 · 1865 阅读 · 0 评论 -
RabbitMQ如何确保消息发送 ? 消息接收?
RabbitMQ如何确保消息发送 ? 消息接收?发送方确认机制:信道需要设置为 confirm 模式,则所有在信道上发布的消息都会分配一个唯一 ID。一旦消息被投递到queue(可持久化的消息需要写入磁盘),信道会发送一个确认给生产者(包含消息唯一ID)。如果 RabbitMQ发生内部错误从而导致消息丢失,会发送一条nack(未确认)消息给生产者。所有被发送的消息都将被 confirm(即ack)或者被nack一次。但是没有对消息被confirm 的快慢做任何保证,并且同一条消息不会既被 conf原创 2021-11-07 09:34:50 · 1461 阅读 · 0 评论 -
简述RabbitMQ的架构设计
先我们肯定知道RabbitMQ就是消息队列的一种实现,那么围绕这个,我们就可以思考一个消息队列到底需要什么,当然是需要队列,那么这个队列就是Queue,那么其他的所有名词都是围绕这个Queue来拓展的。首先,想要让队列不在本地运行,而在网络中运行,肯定会有连接这个概念,所以就会有Connection,我们发一条消息连接一次,这样很显然是浪费资源的,建立连接的过程也很耗时,所以我们就会做一个东西让他来管理连接,当我用的时候,直接从里边拿出来已经建立好的连接发信息,那么ConnectionFactory应运.原创 2021-11-06 16:57:29 · 1300 阅读 · 0 评论