上海网站建设口碑好未成年怎么在网上卖东西

bicheng/2026/1/25 9:09:24/文章来源:
上海网站建设口碑好,未成年怎么在网上卖东西,网站标题设计在线,简阳网站建设简阳目录 一、RabbitMQ 持久化机制 1、RabbitMQ 持久化概述2、队列持久化3、消息持久化4、交换器持久化 二、RabbitMQ 知识扩展 1、内存告警与内存换页2、磁盘告警与配置3、数据写入磁盘时机4、磁盘消息格式5、磁盘文件删除机制 一、RabbitMQ 持久化机制 1、RabbitMQ 持久化概述…目录 一、RabbitMQ 持久化机制 1、RabbitMQ 持久化概述2、队列持久化3、消息持久化4、交换器持久化 二、RabbitMQ 知识扩展 1、内存告警与内存换页2、磁盘告警与配置3、数据写入磁盘时机4、磁盘消息格式5、磁盘文件删除机制 一、RabbitMQ 持久化机制 1、RabbitMQ 持久化概述 持久化即将原本存在于内存中的数据写入到磁盘上永久保存数据防止服务宕机时内存数据的丢失。 Rabbitmq 的持久化分为队列持久化、消息持久化和交换器持久化。 对于消息来说不管是持久化的消息还是非持久化的消息都可以被写入到磁盘。持久化的消息会同时写入磁盘和内存加快读取速度非持久化消息会在内存不够用时将消息写入磁盘一般重启之后就没有了。 2、队列持久化 队列的持久化是在定义队列时的通过 durable 参数来决定的当 durable 为 true 时才代表队列会持久化。例如 Connection connection connectionFactory.newConnection(); Channel channel connection.createChannel(); //第二个餐胡设置为true代表队列持久化 channel.queueDeclare(queue.persistent.name, true, false, false, null);关键的是第二个参数设置为 true即 durable true。Channel 类中 queueDeclare 的完整定义如下 Queue.DeclareOk queueDeclare(String queue, boolean durable, boolean exclusive, boolean autoDelete,MapString, Object arguments) throws IOException;参数说明 queuequeue 的名称exclusive排他队列如果一个队列被声明为排他队列该队列仅对首次申明它的连接可见并在连接断开时自动删除。这里需要注意三点 排他队列是基于连接可见的同一连接的不同信道是可以同时访问同一连接创建的排他队列“首次”如果一个连接已经声明了一个排他队列其他连接是不允许建立同名的排他队列的这个与普通队列不同即使该队列是持久化的一旦连接关闭或者客户端退出该排他队列都会被自动删除的这种队列适用于一个客户端发送读取消息的应用场景。 autoDelete自动删除如果该队列没有任何订阅的消费者的话该队列会被自动删除。这种队列适用于临时队列。 总结如果将 queue 的持久化标识 durable 设置为 true则代表是一个持久的队列。当服务重启之后队列仍然会存在这是因为服务会把持久化的 queue 存放在硬盘上当服务重启的时候会重新加载这些被持久化的 queue。 3、消息持久化 队列是可以被持久化但是里面的消息是否为持久化那还要看消息的持久化设置。也就是说重启之前 queue 里面如果还有未发出去的消息的话重启之后消息是否还存在队列里面就要取决于在发送消息时对消息的设置。 消息持久化的实现需要在发送消息时设置消息的持久化标识例如 channel.basicPublish(exchange01, routing_key01, MessageProperties.PERSISTENT_TEXT_PLAIN, persistent_message.getBytes());方法原型是 void basicPublish(String exchange, String routingKey, BasicProperties props, byte[] body) throws IOException;这里关键的是 BasicProperties props 这个参数它的定义如下 public BasicProperties(String contentType,//消息类型如text/plainString contentEncoding,//编码MapString,Object headers,Integer deliveryMode,//1:nonpersistent 2:persistentInteger priority,//优先级String correlationId,String replyTo,//反馈队列String expiration,//expiration到期时间String messageId,Date timestamp,String type,String userId,String appId,String clusterId )其中 deliveryMode1 代表不持久化deliveryMode2 代表持久化。而代码实现中的 MessageProperties.PERSISTENT_PLAIN 值是官方提供的一个将 deliveryMode 设置为 2 的 BasicProperties 的对象 public static final BasicProperties PERSISTENT_TEXT_PLAIN new BasicProperties(text/plain,null,null,2,0, null, null, null,null, null, null, null,null, null);除此之外我们也可以使用另一种方式来设置消息持久化标志位 AMQP.BasicProperties.Builder builder new AMQP.BasicProperties.Builder(); builder.deliveryMode(2); // 将 deliveryMode 值设置为 2 表示消息持久化 AMQP.BasicProperties properties builder.build(); channel.basicPublish(exchange01, routing_key01, properties, persistent_message.getBytes());至此我们可以知道当 broker 服务其重启后想要消息不丢失既需要设置队列持久化也需要设置消息持久化。 扩展知识 basicPublish 方法还有另外两个重载方法 void basicPublish(String exchange, String routingKey, boolean mandatory, BasicProperties props, byte[] body)throws IOException; void basicPublish(String exchange, String routingKey, boolean mandatory, boolean immediate, BasicProperties props, byte[] body)throws IOException;这里有两个关键的参数mandatory 和 immediate。这两个标识位都有当消息传递过程中不可达目的地时将消息返回给生产者的功能。下面简单讲解下这两个标识位 1mandatory 当 mandatory 标志位设置为 true 时如果 exchange 根据自身类型和消息 routeKey 无法找到一个符合条件的 queue那么会调用 basic.return 方法将消息返回给生产者Basic.Return Content-Header Content-Body当 mandatory 设置为 false 时如果出现上述情形的话broker 会直接将消息扔掉。 2immediate 当 immediate 标志位设置为 true 时如果 exchange 在将消息路由到 queue(s) 时发现对于的 queue 上么有消费者那么这条消息不会放入队列中。当与消息 routeKey 关联的所有 queue一个或者多个都没有消费者时该消息会通过 basic.return 方法返还给生产者。 概括来说就是 mandatory 标志告诉服务器至少将该消息 route 到一个队列中否则将消息返还给生产者immediate 标志告诉服务器如果该消息关联的 queue上有消费者则马上将消息投递给它如果所有 queue 都没有消费者直接把消息返还给生产者不用将消息入队列等待消费者了。 4、交换器持久化 对于消息的可靠性来说只需要设置队列的持久化和消息的持久化即可。exchange 的持久化并没有什么影响但是如果 exchange 不设置持久化的话当 broker 服务重启之后exchange 将不复存在这样会导致消息发送者 producer 无法正常发送消息。 所以建议同样设置 exchange 的持久化。而 exchange 的持久化设置也特别简单设置方法原型如下 Exchange.DeclareOk exchangeDeclare(String exchange,String type,boolean durable)throws IOException;exchange交换器的名称type交换器的类型常见的如 fanout direct topicdurable持久话标志位 durable 设置为 true 表示持久化 反之为非持久 。 所以只需要在声明的时候将 durable 字段设置为 true 即可 channel.exchangeDeclare(exchangeName, “direct/topic/header/fanout”, true);二、RabbitMQ 知识扩展 1、内存告警与内存换页 1-1、内存告警 当内存使用超过配置的阈值时RabbitMQ 会暂时阻塞客户端的连接并停止接收从客户端发来的消息以避免服务崩溃客户端与服务端的心跳检测也会失败。 当出现内存告警时可以通过管理命令临时调整内存大小 RabbitMQctl set_vm_memory_high_watermark fractionfraction 为内存阈值RabbitMQ 默认是 0.4表示当 RabbitMQ 使用的内存超过总内存的 40% 时就会产生告警并阻塞所有生产则连接。 通过此命令修改的阈值在 RabbitMQ 重启之后将会失效如果想要设置的阈值永久有效需要修改配置文件 # 相对值也就是前面的fraction建议设置在0.4~0.66之间不要超过0.7 vm_memory_high_watermark.relative0.4 # 绝对值单位为KB,MB,GB,对应的临时命令是RabbitMQctl set_vm_memory_high_watermark absolute value #vm_memory_high_watermark.absolute1GB修改完配置文件后需要重启服务才会生效。 1-2、内存换页 在某个 broker 节点触及内存阈值并阻塞生产者之前它会尝试将队列内存中的消息换页存储到磁盘以释放内存空间。持久化和非持久化的消息都会被转储到磁盘中其中持久化的消息本身就在磁盘中有一个备份所以这里会将持久化的消息直接从内存中清除掉。 默认情况下在内存使用达到设置的阈值的 50% 时会进行换页操作。也就是说在默认的内存阈值 40% 的情况下当内存超过 40% * 50% 20% 时会经行换页动作。 内存换页阈值可以通过在配置文件中设置来进行调整 vm_memory_high_watermark_paging_ratio0.75上面的配置将会在 RabbitMQ 内存使用率达到 30%假设内存阈值是 0.4时进行换页动作并在 40% 时阻塞生产者当 vm_memory_high_watermark_paging_ratio 的值大于 1 时相当于禁用了换页功能。 2、磁盘告警与配置 2-1、磁盘告警 当磁盘剩余空间低于设置的阈值时RabbitMQ 同样会阻塞生产者这样可以避免因非持久化的消息持续换页而耗尽磁盘空间导致服务崩溃。 默认情况下磁盘的阈值是50M表示当磁盘剩余空间低于50M时会阻塞生产者并停止内存中消息的换页动作。这个阈值的设置可以减小但不能完全消除因磁盘耗尽而导致崩溃的可能性。比如在两次磁盘空间检测期间内磁盘空间从大于50M被耗尽到0M。 2-2、修改磁盘告警阈值 可以通过以下命令临时调整磁盘阈值 #设置具体大小单位为KB/MB/GB RabbitMQctl set_disk_free_limit disk_limit #设置相对值建议取值为1.0~2.0相对于内存的倍数如内存大小是8G,若为1.0则表示磁盘剩余8G时阻塞 RabbitMQctl set_disk_free_limit mem_relative fraction如果要永久生效需要对应的配置文件配置如下需要重启生效 disk_free_limit.relative2.0 #disk_free_limit_absolute50MB这里有个建议一个相对谨慎的做法是将磁盘阈值设置为与操作系统所显示的内存大小一致。 3、数据写入磁盘时机 消息的正常写入磁盘流程为消息数据写入到缓存 Buffer 中大小为 1 MBuffer 数据满了之后会写入内存文件中最后再刷新到磁盘文件中存在个固定的刷盘时间25ms也就是不管 Buffe r满不满每隔 25msBuffer 里的数据及未刷新到磁盘的文件内容必定会刷到磁盘每次消息写入后如果没有后续写入请求则会直接将已写入的消息刷到磁盘使用 Erlang 的 receive x after 0 来实现。只要进程的信箱里没有消息则产生一个 timeout 消息而 timeout 会触发刷盘操作。 4、磁盘消息格式 消息保存于 $MNESIA/msg_store_persistent/x.rdq 文件中其中 x 为数字编号从 1 开始每个文件最大为 16M16777216超过这个大小会生成新的文件文件编号加 1。 文件中的消息格式如下 Size:64, MsgId:16/binary, MsgBodyMsgId 为 RabbitMQ 通过 rabbit_guid:gen() 每一个消息生成的 GUIDMsgBody 会包含消息对应的 exchangerouting_keys消息的内容消息对应的协议版本消息内容格式二进制还是其它等等。 5、磁盘文件删除机制 当所有磁盘文件中的垃圾消息已经被删除的消息比例大于阈值GARBAGE_FRACTION 0.5时会触发文件合并操作至少有三个文件存在的情况下以提高磁盘利用率。publish 消息时写入内容ack 消息时删除内容更新该文件的有用数据大小当一个文件的有用数据等于 0 时删除该文件。 相关官方文档 https://blog.RabbitMQ.com/posts/2011/01/RabbitMQ-backing-stores-databases-and-diskshttps://www.RabbitMQ.com/persistence-conf.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/86914.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

英迈思做网站怎么样关于申请网站建设的请示

前言 大家好!我是二蛋,一个热爱技术、乐于分享的工程师。在过去的几年里,我一直通过各种渠道与大家分享技术知识和经验。我深知,每一位技术人员都对自己的技能提升和职业发展有着热切的期待。因此,我非常感激大家一直…

给别人做网站如何收费巴南区网站建设

一、简介 Lichee Pi 4A是一款基于RISC-V指令集的强大Linux开发板,它凭借出色的性能和丰富的接口,吸引了众多开发者和爱好者的关注。这款开发板不仅适用于学习和研究RISC-V架构,还可以作为软路由、小型服务器或物联网设备的核心组件。 目录 一…

石嘴山网站seo资阳网络营销顾问招聘

目录 1、模板匹配介绍 2、cv::matchTemplate 3、模板匹配的方法(算法) 4、代码演示 1、模板匹配介绍 模板匹配就是在整个图像区域发现与给定子图像匹配的小块区域。 它可以在一幅图像中寻找与给定模板最相似的部分。 模板匹配的步骤: &a…

asp图片源码网站wordpress单页面

在我们进行 API 开发和测试时,使用诸如 Postman 之类的工具可以极大地简化工作流程,提高效率。Postman 的一个强大功能就是变量(Variables)。利用变量,我们可以使我们的请求变得更加动态和灵活,避免重复输入…

网站建设与管理计划书在县城做同城网站怎么样

文章目录 一、排序组件继承GenericAPIView使用DRF内置排序组件继承APIView编写排序 二、过滤组件继承GenericAPIView使用DRF内置过滤器实现过滤使用第三方模块django-filter实现and关系的过滤自定制过滤类排序搭配过滤使用 三、分页组件分页器一:Pagination&#xf…

郴州网站谷歌seo优化公司

随着经济的发展、财富的累积,人们生活水平、生活质量大幅度提高,生活环境得到明显改善,但是竞争激烈、人们生活压力大、生活节奏快加上饮食习惯和生活方式不合理导致国内 亚健康人群逐年增多。统计数据表明当前我国亚健康人群比例已经超过了7…

南京网站设计公司兴田德润优惠吗高端自适应网站设计

从MSDN找到的资料,详见:http://msdn.microsoft.com/zh-cn/library/aa967729.aspx安装“消息队列 (MSMQ)”以下过程介绍如何安装“消息队列 4.0”和“消息队列 3.0”。 注意: 消息队列 4.0 在 Windows XP 和 Windows Server 2003 中不可用。 在 Windows S…

如何做一个内部网站东莞百度快照优化排名

Apache 安装和使用文档更新时间:2009年11月26日 00:34:37 作者:Apache安装和使用文档一、准备工作:1台PC机,安装linux操作系统 参考文档linux安装.docx2 gcc的安装 参考文档gcc的安装.zip3 apache的安装包httpd-2.0.63.tar.gz二…

扬州将建设网站在线定制网站官网

集成运放的三大特性:虚短、虚断、 和 虚地把这几个特性理解明白了, 后面的电路分析就很容易上手。 虚短:UPUN,两输入端电压相等。虚断:IPIN0,两输入端的输入电流为0。虚地:UPUN0&#xff0c…

个人网站设计作品htmlwordpress付费剧集网站

文章目录 引言《与玛格丽特的午后》(网友评分:9.1)《午夜巴黎》(网友评分:8.3)《玫瑰人生》(网友评分:8.4)《双姝奇缘》(网友评分:8.7)《巴黎淘气帮》(网友评分:8.6)《触不可及》(网友评分:9.3)《爱在日落黄昏时》(网友评分:8.9)《悲惨世界》(网友评分:…

最低的成本做网站seo搜索

SpringBoot 3.2引入了新的 HTTP interface 用于http接口调用,采用了类似 openfeign 的风格。 具体的代码参照 示例项目 https://github.com/qihaiyan/springcamp/tree/master/spring-http-interface 一、概述 HTTP Interface 是一个类似于 openfeign 的同步接口调…

视频网站 移动 模板全flash网站源码

这里需要用的插件:qs.js,是前端给后端发送的数组,需要序列化所以要用到这个插件,这里就提取连接在这里,需要的自提,需要导如进来,别忘记了 链接:https://pan.baidu.com/s/1qyD8v9wfd…

集团公司网站建设策划方案企业网站建站技术

1.printf Format 描述 %s: 一个字符串 %d, %i :一个小数 %f :一个浮点数 %.ns: 输出字符串, n 是输出几个字符 %m.nf :输出浮点数, m 是输出整数位数, n 是输出的小数位数 %x :不带正负号的十六进制,使用 a 至 f 表示…

个人网站推广方法沈阳网站seo

基本概念 数据库 Database :存储数据的容器 表 Table : 在数据库中存储的基本结构,它由行和列组成 行 Row : 表中的一条记录 列 Column : 表中的字段,定义了数据的类型和约束 数据类型 数据值 如 INT(整型),FLAOT(浮点型) ,DECIMAL (精确小数点) 字符串 如 VARCHAR(可变长度字…

网站制作系统哪个好wordpress删除恢复

一、flyway简介 Flyway是一个简单开源数据库版本控制器(约定大于配置),主要提供migrate、clean、info、validate、baseline、repair等命令。它支持SQL(PL/SQL、T-SQL)方式和Java方式,支持命令行客户端等&am…

东莞餐饮网站建设佛山html5网站建设

一. IOC和DI 1. 通过Nuget引入Unity程序集。 PS:【版本:5.8.6】 2. 新建DIFactory类,用来读取Unity的配置文件并创建Unity容器,需要注意的是DIFactory类需要声明成单例。 PS:这里采用静态构造函数(必须是无参的)的形式来实现单…

网站开发一般要哪些开发工具织梦设置中英文网站

目录 1、配置国内 Maven 源 配置和检测 settings.xml 配置国内源 2、删除本地 maven 创库的 jar 重新下载 3、其他问题 一般情况下 maven jar 包下载不成功可能有两种情况: 1)没有配置国内源 2)jar 包需要重新下载 下面详细讲解如何解决这两…

商城源码购买网站内部seo优化包括

1、个人思考 几个方面: 新人:选、育、用、留 老人:如何甄别? 团队怎么演进? 有没有什么注意事项 怎么做招聘? 2、 他人考虑 重点: 1、从零开始,讲一个搭建团队的流程 2、标…

网站空间与域名的关系wordpress 门户插件

通信网络安全服务能力评定资质是中国通信企业协会通信网络安全专业委员会(简称通信安委会)颁发的一项专业资质,旨在评定通信网络安全服务单位的服务资格、水平和能力。这项资质对于从事网络安全服务的企业尤为重要,因为它直接反映…

东莞如何建网站费用二手房网签合同在哪个网站做

一 问题描述 最近朋友在工作中遇到这样一个问题,她每天都要处理如下一批 Excel 表格:每个表格的都只有一个 sheet,表格的前两行为表格标题及表头,表格的最后一行是相关人员签字。最终目标是将每个表格的内容合并到一个 Excel 表格…