2016 - 2025

感恩一路有你

springboot项目中如何使用缓存 RabbitMQ如何通过持久化保证消息99.99%不丢失?

浏览量:2135 时间:2023-06-13 07:40:24 作者:采采

RabbitMQ如何通过持久化保证消息99.99%不丢失?

Rabbitmq本身运行在内存中。高速的同时,也意味着万一停电,消息会从内存中丢失。所以,我们需要做出坚持。让 下面我们来谈谈rabbitmq如何保证99.99%的消息。

坚持

正如我们在开始时介绍的,消息队列在内存中,因此我们需要将消息持久化到硬盘中,然后我们可以从硬盘中恢复数据。

Ack确认

发送消息后,让消费者发送确认消息。如果没有收到确认消息,服务器将保存该消息并从存储器中删除数据,直到从消费者收到确认消息。

备份模式

它是消息队列的镜像备份,类似于mysql的主从复制。当一个节点出现故障时,可以使用备份节点继续传输消息。

航海日志记录

任何消息都会出乎意料。这时候我们就可以通过日志分析数据来补偿之前有问题的消息。

多做备份,多做记录,就像我们平时写日志一样。记录越详细,我们能发现的问题就越多。当然,记录要适度。

springboot怎么实现集群?

这个问题比较模糊。集群本身是一个复杂的话题。你想在哪个层面实现集群化(web?服务?数据?等等),你的目标是什么?(负载均衡?停机会话复制?性能要求?那么我只能简单介绍一下一些常见场景下与Spring boot相关的集群技术。如果您的微服务是无状态的,您可以将它们部署在多个服务器实例上,并在前端使用负载平衡器(如nginx)。

如果您需要会话复制,对于动态容错和部署,您可以查看spring-session。如果需要数据库集群,请参考数据库集群的相关技术。mongoDB和reddis都有自己的方案。如果是数据缓存集群,也有很多引用,比如memcache和Hazelcast。如果喜欢比较无脑的套餐,可以看看春云。

集群 数据 消息 备份 技术

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。