-
是什么查看全部
-
是什么查看全部
-
rabbitMQ查看全部
-
消息如何流转
查看全部 -
用Virtral host 作不同公司之间的业务隔离
查看全部 -
消息可靠性投递方案
Step 1: 首先把消息信息(业务数据)存储到数据库中,紧接着,我们再把这个消息记录也存储到一张消息记录表里(或者另外一个同源数据库的消息记录表)
Step 2:发送消息到MQ Broker节点(采用confirm方式发送,会有异步的返回结果)
Step 3、4:生产者端接受MQ Broker节点返回的Confirm确认消息结果,然后进行更新消息记录表里的消息状态。比如默认Status = 0 当收到消息确认成功后,更新为1即可!
Step 5:但是在消息确认这个过程中可能由于网络闪断、MQ Broker端异常等原因导致 回送消息失败或者异常。这个时候就需要发送方(生产者)对消息进行可靠性投递了,保障消息不丢失,100%的投递成功!(有一种极限情况是闪断,Broker返回的成功确认消息,但是生产端由于网络闪断没收到,这个时候重新投递可能会造成消息重复,需要消费端去做幂等处理)所以我们需要有一个定时任务,(比如每5分钟拉取一下处于中间状态的消息,当然这个消息可以设置一个超时时间,比如超过1分钟 Status = 0 ,也就说明了1分钟这个时间窗口内,我们的消息没有被确认,那么会被定时任务拉取出来)
Step 6:接下来我们把中间状态的消息进行重新投递 retry send,继续发送消息到MQ ,当然也可能有多种原因导致发送失败
Step 7:我们可以采用设置最大努力尝试次数,比如投递了3次,还是失败,那么我们可以将最终状态设置为Status = 2 ,最后 交由人工解决处理此类问题(或者把消息转储到失败表中)。
查看全部 -
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,消息队列,保存消息并将它们转发给消费者
查看全部 -
RabbitMQ的整体架构图
查看全部 -
RabbitMQ安装步骤
查看全部 -
RabbitMQ安装与使用
查看全部 -
AMQP协议模型
查看全部 -
RabbitMQ的特点
查看全部 -
RabbitMQ的特点:
- RabbitMQ底层采用Erlang语言进行编写
- 开源、性能优秀、稳定性好
- 与SpringAMQP完美的整合、API丰富
- 集群模式丰富、表达式配置、HA模式、镜像队列模型
- 保证数据不丢失的前提做到高可靠性、可用性
查看全部 -
RabbitMQ定义
查看全部
举报