mq信道是一种通信信道,也叫消息队列,类似于人类交谈中、邮件、的一种通信。
排队管理程序
队列管理器是mq系统中的顶级概念,它为我们提供基于队列的消息服务。
新闻
在mq中,我们将应用程序发送到mq进行传输的数据定义为消息,我们可以定义消息的内容,并对消息进行广义的理解。
目前主流的消息系统有rabbitmq、rocketmq、activemq等。rabbitmq是基于erlang开发的,具有良好的并发和延迟性能。
rabbitmq消息的可靠性达到了什么程度?消息可靠性是rabbitmq的一个主要特性。rabbitmq是如何实现消息可靠性的?实际上是通过消息持久化来实现的,避免了服务异常(重启、宕机)下消息和队列丢失的风险。
消息持久化是指rabbitmq将内存(交换、队列、消息)中的数据存储在硬盘上,防止内存中的数据因异常情况而丢失。
rabbitmq是如何实现消息持久化的?rabbitmq中不同的数据持久化方法是不同的,主要包括:
1.交流的持久性。
交换丢失会影响后续消息的写入。在创建exchange时,我们需要将durable指定为true来表示持久性。
2.队列的持久性
在上面的第一步中,即使在创建交换机时将durable设置为true,exchange也不会丢失,但是其中的队列仍然会丢失。如何保证队列的持久性?创建队列时,还可以将durable指定为true。
3.消息的持久性
经过以上两步,重启rabbitmq后,虽然exchange和queue不会丢失,但是queue中的消息会丢失,那么如何保证消息持久性不会丢失呢?我们将消息传递模式设置为2,这意味着消息持久性。
消息持久性可以t保证100%的数据不会。;不要迷路。当我们设置开关/队列/消息持久性时,我们仍然可以t保证100%的数据不会。;不要迷路。这其实很好理解。将内存中的数据写入硬盘需要时间。在突然断电、停机和重启的情况下,消息可能无法及时到达,因此这些消息可能会丢失。
消息持久性会带来性能问题。我们知道消息持久化是将内存中的数据写到硬盘上,但是硬盘的读写速度远不及内存,所以开启消息持久化会影响rabbitmq。性能。
那个这是我的看法。你怎么看待这个问题?欢迎在下方评论区交流~我是科技领域的创作者,有十年互联网行业经验。欢迎关注我了解更多科技知识!