当前位置: 首页 > news >正文

网站服务器续费wordpress怎么优化精简

网站服务器续费,wordpress怎么优化精简,手机怎么在微信公众号发文章,建设厅网站关于建筑资质合并专栏导航 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、MQ数据持久化 1.交换机持久化 2.队列持久化 3.消息持久化 4.生产者确认机制 二、LazyQueue 1.LazyQueue模式介绍 2.管理控制台配置Lazy模式 3.代码配置Lazy模式 4.更新已有队列为lazy模式 总… 专栏导航 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、MQ数据持久化 1.交换机持久化 2.队列持久化 3.消息持久化 4.生产者确认机制 二、LazyQueue 1.LazyQueue模式介绍 2.管理控制台配置Lazy模式 3.代码配置Lazy模式 4.更新已有队列为lazy模式 总结 前言 RabbitMQ是一个高效、可靠的开源消息队列系统广泛用于软件开发、数据传输、微服务等领域。本文主要介绍了MQ数据持久化、LazyQueue模式、管理控制台配置Lazy模式、代码配置Lazy模式、更新已有队列为lazy模式等内容。 一、MQ数据持久化 在消息队列MQ中数据的持久化至关重要。如果MQ不能及时保存消息可能会导致数据丢失。为了确保数据的可靠性必须配置数据持久化。 1.交换机持久化 在RabbitMQ管理控制台新建交换机时可以配置交换机的Durability参数 Durable持久化模式Transient临时模式 代码声明交换机时默认为持久化模式DirectExchange源码 public DirectExchange(String name) {super(name);}public DirectExchange(String name, boolean durable, boolean autoDelete) {super(name, durable, autoDelete);}public DirectExchange(String name, boolean durable, boolean autoDelete, MapString, Object arguments) {super(name, durable, autoDelete, arguments);} AbstractExchange源码DirectExchange extends AbstractExchange public AbstractExchange(String name) {this(name, true, false);}public AbstractExchange(String name, boolean durable, boolean autoDelete) {this(name, durable, autoDelete, (Map)null);}public AbstractExchange(String name, boolean durable, boolean autoDelete, MapString, Object arguments) {super(arguments);this.name name;this.durable durable;this.autoDelete autoDelete;} 2.队列持久化 在RabbitMQ管理控制台新建队列时可以配置队列的Durability参数 Durable持久化模式Transient临时模式 代码声明队列时默认为持久化模式源码如下 public Queue(String name) {this(name, true, false, false);}public Queue(String name, boolean durable) {this(name, durable, false, false, (Map)null);}public Queue(String name, boolean durable, boolean exclusive, boolean autoDelete) {this(name, durable, exclusive, autoDelete, (Map)null);}public Queue(String name, boolean durable, boolean exclusive, boolean autoDelete, Nullable MapString, Object arguments) {super(arguments);Assert.notNull(name, name cannot be null);this.name name;this.actualName StringUtils.hasText(name) ? name : Base64UrlNamingStrategy.DEFAULT.generateName() _awaiting_declaration;this.durable durable;this.exclusive exclusive;this.autoDelete autoDelete;} 3.消息持久化 在控制台发送消息的时候可以通过配置消息的属性来实现消息的持久化。消息持久化是将消息保存在磁盘上即使MQ重启消息也不会丢失。在发送消息时可以选择Delivery mode参数来配置消息的持久化属性。 查看消息 4.生产者确认机制 在开启持久化机制以后如果同时还开启了生产者确认那么MQ会在消息持久化以后才发送ACK回执给生产者进一步确保消息的可靠性。为了减少IO次数并提高性能MQ并不会逐条将消息持久化到数据库而是每隔一段时间批量进行持久化。因此建议生产者确认全部采用异步方式以避免ACK的延迟。 二、LazyQueue 1.LazyQueue模式介绍 在 RabbitMQ 的默认设置中为了降低消息收发的延迟它会将接收到的信息保存在内存中。然而在某些特殊情况下这种设置可能会导致消息积压。以下是几种可能导致消息积压的情况 消费者宕机或出现网络故障当消费者无法正常处理消息时RabbitMQ 将无法将消息传递给消费者从而导致消息积压。消息发送量激增超过了消费者处理速度当消息发送速度超过消费者的处理速度时消息将在 RabbitMQ 的队列中积压。消费者处理业务发生阻塞如果消费者在处理消息时遇到业务阻塞例如等待某些资源或进行耗时的操作那么它可能会花费更长的时间来处理消息从而导致消息积压。 当消息堆积问题出现时RabbitMQ 的内存占用会逐渐增加直到触发内存预警上限。此时RabbitMQ 将开始将内存中的消息刷写到磁盘上这个过程称为“PageOut”。“PageOut”过程会耗费一定的时间并且会阻塞队列进程。因此在这个过程中RabbitMQ 将无法处理新的消息导致生产者的所有请求都被阻塞。 为了解决这个问题从 RabbitMQ 3.6.0 版本开始引入了 Lazy Queues惰性队列模式。惰性队列具有以下特征 接收到消息后直接存入磁盘而非内存在惰性队列中消息在接收到后不会立即加载到内存中而是直接存储在磁盘上。消费者要消费消息时才会从磁盘中读取并加载到内存也就是懒加载当消费者需要消费消息时它才会从磁盘中读取消息并加载到内存中。这样可以避免在消费者不活跃时浪费内存资源。支持数百万条的消息存储惰性队列支持大量的消息存储即使在没有内存限制的情况下也能处理大量的消息。 在RabbitMQ 3.12 版本之后LazyQueue 已经成为所有队列的默认格式。这种模式可以有效地解决消息积压问题提高 RabbitMQ 的性能和稳定性。 2.管理控制台配置Lazy模式 在新建队列的时候添加x-queue-modelazy参数设置队列为Lazy模式RabbitMQ 3.12 版本之前 3.代码配置Lazy模式 在使用Spring AMQP声明队列的时候添加x-queue-modlazy参数设置队列为Lazy模式 Beanpublic Queue lazyQueue() {// .lazy()开启Lazy模式return QueueBuilder.durable(lazy.queue).lazy().build();} 源码如下 public QueueBuilder lazy() {return this.withArgument(x-queue-mode, lazy);} 基于注解来声明队列并设置为Lazy模式 RabbitListener(queuesToDeclare Queue(name lazy.queue,durable true,arguments Argument(name x-queue-mode, value lazy)))public void listenLazyQueue(String msg){log.info(lazy.queue{}, msg);} 4.更新已有队列为lazy模式 基于命令行设置policy实现将已有队列更新为lazy模式 rabbitmqctl set_policy Lazy ^lazy-queue$ {queue-mode:lazy} --apply-to queues rabbitmqctlRabbitMQ的命令行工具set_policy添加一个策略Lazy策略名称^lazy-queue$用正则表达式匹配队列的名字{queue-mode:lazy}设置队列模式为lazy模式--apply-to queues策略的作用对象是所有的队列 管理控制台配置policyRabbitMQ 3.12 版本之前 总结 RabbitMQ是一个开源的消息队列软件旨在提供可靠的消息传递和消息队列功能。本文主要介绍了MQ数据持久化、LazyQueue模式、管理控制台配置Lazy模式、代码配置Lazy模式、更新已有队列为lazy模式等内容希望对大家有所帮助。
http://icebutterfly214.com/news/15523/

相关文章:

  • Day31-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\Regex
  • Python私教FastAPI+React构建Web应用03 FARM技术栈介绍 - 教程
  • Java基础加强13-集合框架、Stream流 - 指南
  • leetcode热题100-49:字母异位词分组
  • YACS2025年10月乙组
  • Windows11升级专业版密钥
  • 把 1 GHz 做成一粒米”——成都恒利泰科技 HT-LFCG-1000+
  • 2025年钢带波纹管批发厂家权威推荐榜单:hdpe钢带波纹管/钢带管/钢带增强聚乙烯螺旋波纹管源头厂家精选
  • 2025年乐博智家保鲜盒直销厂家权威推荐榜单:乐博智家冰沙杯/乐博智家炒冰机/乐博智家刨冰机源头厂家精选
  • 2025年粉末涂料排行榜推荐,粉末涂料公司全解析
  • hive在虚拟机中的部署
  • 超越简单的回放:深度解析国标GB28181算法算力平台EasyGBS的录像检索与回放技术
  • 2025 年 11 月中小企业财税合规服务权威推荐榜:专业筹划与风险防控口碑之选
  • 字段(辨析:字段、对象、属性和方法在 JavaScript 中的关系)
  • Grafana12安装部署
  • 图的dfs和bfs遍历
  • 2025年工业铝型材安全定制厂家推荐:工业铝型材定制实力供应商
  • vue3中英文转换方案(使用 Vue I18n)
  • mssql db_owner权限sql注入
  • 三场比赛(四)
  • mssql public权限sql注入
  • 2025 国内外运维监控厂商选型指南:锚定国产化与信创,国产监控产品如何破局?
  • 7-1 API使用与字符串处理
  • 2025年改性pp阻燃母料订购源头厂家权威推荐榜单:丽水pp阻燃改性/pp的阻燃改性/阻燃改性PP源头厂家精选
  • 国债ETF收益规律发现及应用
  • 2025年11月治疗失眠的专家推荐:市场报告与榜单全解析
  • 2025 年实验室 CMA/CNAS 认证咨询公司全新推荐
  • AT_abc200_d [ABC200D] Happy Birthday! 2 题解报告
  • 详细介绍:安全框架 SpringSecurity 入门(超详细,IDEA2024)
  • Web开发的坑