RabbitMQ Lazy Queue 延迟加载

Lazy Queue

在著名的单例设计模式中就有懒汉式的实现方式,也就是只有在你需要的时候我才去加载。

这让博主想到了以前上学的时候,每到了假期的假期作业,在假期的时候是从来不做的。只有在快开学老师要检查的时候才去做,这也是一个懒汉式的体现,哈哈。

而RabbitMQ也是有lazy queue的,queue中的消息存在磁盘只有在consumer来找它要了,才会加载到内存。

下面是官方文档,可以看到去lazy queue的介绍,lazy queue是在3.6.0版本被引入的,lazy queue的信息尽可能的都保存在磁盘上,仅在消费者请求的时候才会加载到RAM中。

使用默认的queue,并且消息不持久化的话,都是放在RAM中的。当消息峰值的时候,大量的消息在RAM导致rabbitmq服务器压力过大,当RAM使用量到一定数字的时候就会因为压力把数据移到硬盘中,但是不要嗨皮,rabbitmq服务器重启后消息一样会丢失。而且过大的压力可能会出现各种各样的异常情况,这并不是我们想要看到的

使用lazy queue会有以下几种搭配

lazy queue 消息不持久化 , 但是这种模式还是会把消息放到硬盘里,RAM的使用率会一直很稳定,但是重启后一样会丢失消息

lazy queue 消息持久化,这种方式无疑是最佳搭配,消息放到硬盘并且不会因为服务器重启而丢失,面对高并发也是从容不已

设置lazy queue也很简单,下面代码是一个示例,x-queue-model : lazy

//声明一个懒队列
                channel.QueueDeclare("lazyqueue", true, false, false, new Dictionary<string, object>
                {
                    { "x-queue-mode","lazy"}
                });
时间: 2024-10-03 12:22:49

RabbitMQ Lazy Queue 延迟加载的相关文章

Lazy Load延迟加载图片效果

前些日子自己想搞个延时加载的玩玩,但js自己是不会写的,只有上网找插件了.在网上找了好多,都比较坑爹!为什么呢?大部分文章都是他妹的一篇不停的转载,这地方省一点那地方省一点.你说你转载就算了,保留原出处链接也行啊,这样也方便大家可以有更大的收获.但事实上是什么样子,我也就不多说了,我相信上网查过资料的亲都有过感受.在网上找了好久,最终还是有收获的.自己弄了几个小时后,终于折腾出来了.下面献上自己整理的源码,大神喷时还请手留情.先附一张效果图: css样式: .lazy{width:400px;h

Lazy Load, 延迟加载图片的 jQuery 插件 - NeoEase

body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;

RabbitMQ 声明Queue时的参数们的Power

参数们的Power 在声明队列的时候会有很多的参数 public static QueueDeclareOk QueueDeclare(this IModel model, string queue = "", bool durable = false, bool exclusive = true, bool autoDelete = true, IDictionary<string, object> arguments = null); queue:这没什么好说的,队列名

Lazy Load, 延迟加载图片的 jQuery 插件

本文翻译自 Lazy Load Plugin for jQuery, 介绍一个 jQuery 插件, 它提供懒汉式加载页面图片的功能. Lazy Load 是一个用 JavaScript 编写的 jQuery 插件. 它可以延迟加载长页面中的图片. 在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预加载的处理方式正好是相反的. 在包含很多大图片长页面中延迟加载图片可以加快页面加载速度. 浏览器将会在加载可见图片之后即进入就绪状态. 在某些情况下还可以帮助降低服

Lazy Load, 延迟加载图片的 jQuery 插件(转)

Lazy Load 是一个用 JavaScript 编写的 jQuery 插件. 它可以延迟加载长页面中的图片. 在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预加载的处理方式正好是相反的. 在包含很多大图片长页面中延迟加载图片可以加快页面加载速度. 浏览器将会在加载可见图片之后即进入就绪状态. 在某些情况下还可以帮助降低服务器负担. Lazy Load 灵感来自 Matt Mlinac 制作的 YUI ImageLoader 工具箱. 这是演示页面. 这里

RabbitMQ Queue一些常见模式

懒队列:lazy Queue,即用到的时候才会加载,3.6.0及之后新添加的.当新添加数据后,不会将其放入到内存中,而是将其放入到磁盘中. 普通队列:1).in-memory,数据直接放入到内存中. 2).on-desk,将数据放入到内存中的同时,还会将消息放到磁盘中,当内存压力升高或GC需要回收内存等情况,会将内存中的数据保存到磁盘中. 一些常见的组合: 1). 原文地址:https://www.cnblogs.com/fanqisoft/p/10397172.html

RabbitMQ 入门【精+转】

rabbitmq可以用一本书取讲,这里只是介绍一些使用过程中,常用到的基本的知识点.官方文档覆盖的内容,非常全面:http://www.rabbitmq.com/documentation.html . 1. 介绍 RabbitMQ,即消息队列系统,它是一款开源消息队列中间件,采用Erlang语言开发,RabbitMQ是AMQP(Advanced Message Queueing Protocol)的标准实现. AMQP是一个公开发布的异步消息的规范,是提供统一消息服务的应用层标准高级消息队列协

RabbitMQ指南之五:主题交换器(Topic Exchange)

在上一章中,我们完善了我们的日志系统,用direct交换器替换了fanout交换器,使得我们可以有选择性地接收消息.尽管如此,仍然还有限制:不能基于多个标准进行路由.在我们的日志系统中,我们可能不仅希望根据日志等级订阅日志,还希望根据日志来源订阅日志.这个概念来自于unix工具syslog,它不仅可以根据日志等级(info/warn/crit...)来路由日志,同时还可以根据设备(auth/cron/kern...)来路由日志.这将更加灵活,我们可能希望只监听来自'cron'的error级别日志

Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. Memc