网站备案号怎么修改wordpress实现圈子功能

web/2025/10/4 21:59:59/文章来源:
网站备案号怎么修改,wordpress实现圈子功能,免费生成网站软件下载,免费旅行社网站模板RabbitMQ发布确认机制确保消息从生产者成功传输到交换机和队列#xff0c;提高系统可靠性。在Spring Boot项目中#xff0c;通过配置publisher-confirm-type和publisher-returns#xff0c;启用发布确认和消息返回机制。配置RabbitTemplate的确认回调和返回回调#xff0c;…RabbitMQ发布确认机制确保消息从生产者成功传输到交换机和队列提高系统可靠性。在Spring Boot项目中通过配置publisher-confirm-type和publisher-returns启用发布确认和消息返回机制。配置RabbitTemplate的确认回调和返回回调可以捕捉消息传输状态处理不同传输结果。测试场景包括消息无法到达交换机、消息到达交换机但无法到达队列以及消息成功到达队列。通过合理设置和优化可以确保高并发环境下的消息可靠传输适用于金融支付、电商系统等对消息传输可靠性要求高的场景。 1. RabbitMQ发布确认机制概述 发布确认Publisher Confirms是RabbitMQ提供的一种机制用于确保消息从生产者发送到RabbitMQ服务器并被成功处理。与事务机制不同发布确认的性能开销更小非常适合高吞吐量的场景。发布确认机制提供了两种类型的确认 消息到达交换机Exchange后的确认消息从交换机路由到队列Queue后的确认 2. 配置文件中添加发布确认相关配置 在Spring Boot项目中通过配置文件来启用发布确认机制非常方便。以下是需要添加到application.properties或application.yml中的配置 # 消息到达交换机后会回调发送者 spring.rabbitmq.publisher-confirm-typecorrelated # 消息无法路由到队列时回调发送者 spring.rabbitmq.publisher-returnstrue配置解释 publisher-confirm-type设置为correlated表示使用CorrelationData来关联确认与发送的消息。publisher-returns设置为true表示启用消息返回机制当消息无法路由到队列时会触发回调。 3. 发布确认类型 在Spring AMQP中发布确认类型通过ConfirmType枚举类来定义 public enum ConfirmType {SIMPLE, // 使用 RabbitTemplate#waitForConfirms() 或 waitForConfirmsOrDie()CORRELATED, // 使用 CorrelationData 关联确认与发送的消息NONE // 不启用发布确认 }4. 配置RabbitTemplate 为了使用发布确认机制需要配置RabbitTemplate包括设置确认回调和返回回调 Slf4j Configuration public class RabbitTemplateConfig {Beanpublic RabbitTemplate createRabbitTemplate(ConnectionFactory connectionFactory) {RabbitTemplate rabbitTemplate new RabbitTemplate();rabbitTemplate.setConnectionFactory(connectionFactory);// 设置mandatory为true当找不到队列时broker会调用basic.return方法将消息返还给生产者rabbitTemplate.setMandatory(true);// 设置确认回调rabbitTemplate.setConfirmCallback((correlationData, ack, cause) - {if (ack) {log.info(消息已经到达Exchange);} else {log.info(消息没有到达Exchange);}if (correlationData ! null) {log.info(相关数据 correlationData);}if (cause ! null) {log.info(原因 cause);}});// 设置返回回调rabbitTemplate.setReturnCallback((message, replyCode, replyText, exchange, routingKey) - {log.info(消息无法到达队列时触发);log.info(ReturnCallback: 消息 message);log.info(ReturnCallback: 回应码 replyCode);log.info(ReturnCallback: 回应信息 replyText);log.info(ReturnCallback: 交换机 exchange);log.info(ReturnCallback: 路由键 routingKey);});return rabbitTemplate;} }5. 配置测试交换机和队列 为了测试发布确认机制我们需要配置相应的交换机和队列 Slf4j Configuration public class ConfirmConfig {Beanpublic Queue confirmQueue() {return new Queue(Constant.CONFIRM_QUEUE, false);}BeanDirectExchange confirmExchange() {DirectExchange directExchange new DirectExchange(Constant.CONFIRM_EXCHANGE, false, false);directExchange.addArgument(alternate-exchange, Constant.CONFIRM_BACKUP_EXCHANGE);return directExchange;}BeanBinding bindingConfirm() {return BindingBuilder.bind(confirmQueue()).to(confirmExchange()).with(Constant.CONFIRM_ROUTING_KEY);}BeanFanoutExchange backupExchange() {return new FanoutExchange(Constant.CONFIRM_BACKUP_EXCHANGE, false, false);}Beanpublic Queue backupQueue() {return new Queue(Constant.CONFIRM_BACKUP_QUEUE, false);}Beanpublic Queue warningQueue() {return new Queue(Constant.CONFIRM_WARNING_QUEUE, false);}BeanBinding bindingConfirmBackup() {return BindingBuilder.bind(backupQueue()).to(backupExchange());}BeanBinding bindingConfirmWarning() {return BindingBuilder.bind(warningQueue()).to(backupExchange());} }6. 测试场景及分析 6.1 消息无法到达交换机 测试代码 Autowired RabbitTemplate rabbitTemplate; String msg 一条用于发布确认的消息;GetMapping(/noExchange) public void noExchange() {rabbitTemplate.convertAndSend(noExchange, noExchange, msg); }配置了rabbitTemplate.setMandatory(true)当消息无法到达交换机时会回调 ConfirmCallback 消息没有到达Exchange ConfirmCallback 原因channel error; protocol method: #methodchannel.close(reply-code404, reply-textNOT_FOUND - no exchange noExchange in vhost /, class-id60, method-id40)6.2 消息到达交换机但无法到达队列 测试代码 GetMapping(/toExchange) public void toExchange() {rabbitTemplate.convertAndSend(Constant.CONFIRM_EXCHANGE, xxx.xxx.xxx, msg); }输出 ConfirmCallback 消息已经到达Exchange没有收到无法到达队列的消息是因为配置了备份队列消息被路由到了备份队列。 6.3 注掉备份队列再试 修改配置 Bean DirectExchange confirmExchange() {DirectExchange directExchange new DirectExchange(Constant.CONFIRM_EXCHANGE, true, false);return directExchange; }测试结果 消息无法到达队列时触发 ReturnCallback: 消息(Body:一条用于发布确认的消息 MessageProperties [headers{}, contentTypetext/plain, contentEncodingUTF-8, contentLength0, receivedDeliveryModePERSISTENT, priority0, deliveryTag0]) ReturnCallback: 回应码312 ReturnCallback: 回应信息NO_ROUTE ReturnCallback: 交换机myConfirmExchange ReturnCallback: 路由键xxx.xxx.xxx ConfirmCallback 消息已经到达Exchange此时ConfirmCallback和ReturnCallback都被调用了。 6.4 成功到达队列 测试代码 GetMapping(/toQueue) public void toQueue() {rabbitTemplate.convertAndSend(Constant.CONFIRM_EXCHANGE, Constant.CONFIRM_ROUTING_KEY, msg); }输出 ConfirmCallback 消息已经到达Exchange7. 发布确认流程 下图展示了RabbitMQ发布确认流程 8. 深入解析RabbitMQ发布确认机制 8.1 事务机制与发布确认机制的对比 事务机制和发布确认机制都是确保消息可靠投递的手段但它们在实现和性能方面有明显区别 事务机制通过txSelect、txCommit和txRollback实现性能开销较大不适合高并发场景。发布确认机制通过异步确认消息是否成功到达交换机和队列性能开销小适合高并发场景。 8.2 发布确认机制的优缺点 优点 性能高相比事务机制发布确认机制对性能的影响较小。异步处理使用回调函数处理确认结果不阻塞消息发送。可靠性高确保消息成功到达交换机和队列提高系统可靠性。 缺点 实现复杂需要配置和处理回调函数增加了代码复杂度。延迟高确认机制引入了额外的网络延迟。 8.3 发布确认机制的应用场景 金融支付系统确保支付消息的可靠传输避免重复支付或支付丢失。电商系统确保订单消息的可靠传输避免订单丢失或重复处理。日志系统确保日志消息的可靠传输避免日志丢 失。 8.4 发布确认机制的最佳实践 合理设置超时时间在高并发场景下设置合理的超时时间避免消息发送阻塞。优化回调函数回调函数中避免复杂逻辑确保回调处理快速完成。监控和报警建立监控机制及时发现和处理消息投递失败问题。 9. 总结 本文详细介绍了RabbitMQ消息的发布确认机制包括配置、实现及其在不同场景下的表现。通过合理配置和使用发布确认机制可以有效提高消息传输的可靠性确保消息在高并发环境下的可靠投递。希望本文能够帮助读者深入理解并应用RabbitMQ的发布确认机制提高系统的可靠性和性能。

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

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

相关文章

网站名称备案医院管理系统

目录 仿函数 示例一: 示例二 : 常见的仿函数 priority_queue简介 priority_queue的常用接口 priority_queue的模拟实现 基础接口 push() 堆的向上调整算法 堆的插入 pop() 堆的向下调整算法 堆的删除 priority_queue最终实现 仿函数 仿函数&#xff…

衡水网站设计做网站杭州

对给定序列\(\{a_{0,1,2,\cdots}\}\) 构造一个函数\(F(x)\sum_{i0,1,2,\cdots}a_if_i(x)\),称\(F(x)\)为序列\(\{a_{0,1,2,\cdots}\}\)的生成函数。其中,序列\(\{f_{0,1,2,\cdots}(x)\}​\)只作为标志用,称为标志函数。 普通型生成函数(OGF) …

陕西建设厅网站windows7优化大师下载

SpringData JPA 基本介绍 Spirng data jpa是spring提供的一套简化JPA开发的框架,按照约定好的【方法命名规则】写dao层接口,就可以在不写接口实现的情况下,实现对数据库的访问和操作。 同时提供了很多除了CRUD之外的功能,如分页…

网站死链排查站长检测工具

作者:来自 Elastic Michael Calizo, Tim Lee 在 Elastic,我们大多数成功的客户实施都是从单一用例开始的,旨在满足特定的业务需求。Elastic 最初被采用通常是因为开发人员欣赏它提供的功能。然而,由于其灵活性和可定制性&#xff…

怎样制作网站站点邢台建设局网站上中标公示查询

本文档主要说明一种返工流程,当工人报工时,填写返工数量、变式原因即可启动触发点自动创建返工订单,被创建的反工订单为无料号生产订单,且关联报工订单。涉及系统功能点包括状态参数 一、 后台配置 1).用户状态参数:BS02(SPRO-生产-商店低价控制-主数据-订单-定义状态…

丹阳做网站的linux做网站1G内存够不

介绍 Java的最后几个发行版本,即Java 7,Java 8和即将到来的Java 9,具有许多功能,这些功能使Java开发人员的生活更加轻松。 (我知道Java 9会使它变得更困难,但是只有在您采用新的范例时才可以。之后&#xf…

设计师网站有哪些如何做高端网站建设

2024年福建事业单位招聘详细流程,速速查收!

普兰店网站建设公司百度云免费空间

1.根据马克思的货币需要量公式,在货币流通速度不变的条件下,执行流通手段的货币量取决于()。 A.商品质量 B.商品生产技术条件 C.待销售商品价格总额 D.投机性货币需求 错误 正确答案:左边查询 学生答案:A 2…

做电影资源网站有哪些网站建设项目流程图

享学课堂作者:逐梦々少年转载请声明出处!上次我们详细的学习了Java中的序列化机制,但是我们日常开发过程中,因为java的序列化机制的压缩效率问题,以及序列化大小带来的传输的效率问题,一般很少会使用原生的…

宁波网站seo哪家好桂林市区有什么好玩的

2025年2月17日至18日,全球首富埃隆马斯克(Elon Musk)携手其人工智能公司xAI,在美国重磅发布了Grok 3.0 Beta版。这款被誉为“迄今为止世界上最智能的语言模型”的AI,不仅集成了先进的“DeepSearch”搜索功能&#xff0…

字体图标制作网站网页二级页面怎么做

项目应用场景 面向行人重识别场景,项目具有轻量化 (训练的时候也只需要 2GB 的显存占用)、性能好 (只使用 softmax 损失就能够达到 Rank188.24%, mAP70.68%),另外提供友好的上手项目流程教程 项目效果: 项目流程 > 具体参见项目内README.…

网站开发后台 ampsns网站设计

object-fit 属性可以设置以下值: 属性值说明例子fill填充容器,可能会改变图片的比例。object-fit: fill;contain保持图片的原始比例,确保图片完全包含在容器内。object-fit: contain;cover保持图片的原始比例,确保图片覆盖整个容…

网站站外优化推广方式郑州网站开发工程师

Win10操作系统的任务管理器应该是大家比较熟悉的软件,尤其是在你的电脑卡掉的时候,不得不打开任务管理器,结束掉进程卡死的进程,然后电脑就可以恢复正常使用,任务管理器作为Windows操作系统上一款使用频率非常高的软件…

一台服务器可以建设几个网站wordpress 静态化插件

安装其他插件的时候,常常模板丢失,比较郁闷,以前就用土办法,重装VS来解决这个问题,这次终于弄清楚怎么回事了,可以采取下面两个步骤解决1。复制ProjectTemplates和ItemTemplates,保证VS能找到相…

网站服务公司特点做慕墙上什么网站好找事做

NetCat,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本。因为它短小精悍(1.84版本也不过25k,旧版本或缩减版甚至更小)、功能实用,被设计为一个简单、可靠的网络工具,可通过TCP或UDP协…

番禺做网站技术超酷网站模板

简介 我们知道多个DS18B20的DQ线是可以被挂在一起的, 也就是一根线上可以访问不同的DS18B20而不会造成数据错乱, 怎么做到的,其实数据手册都有说到, 就是靠64-bit ROM code 进行识别, 也可以理解成Serial Number进行识别, 因为主要差异还是在Serial Numb…

网站开发 兼职挣钱吗网络推广服务合同范本

变量生而不变,允许优化,JDK1.5 pre 避免,逸出 final int x; // 错误的构造函数 public FinalFieldExample(){x 3;// 此处就是将this逸出global.obj this; }

公司的网站建设公司seo的主要工作内容

编写JUnit测试可能是一个乏味而乏味的过程。 了解如何使用排列结合TestFactory方法和DynamicTest对象以最少的编码工作来改进测试类。 在本文中,我将使用Java流ORM Speedment,因为它包含一个现成的Permutation类,从而帮助我节省了开发时间。…

东莞网站建设化工wordpress移动端适应

BAPI_PR_CREATE 技术指南 用途:通过 RFC 接口创建 SAP 采购申请(PR),支持自动化集成与批量处理。 一、功能概览 类别说明核心功能创建标准采购申请、预留转采购申请,支持多行项目及账户分配。集成场景与 MRP 系统、外…

注册建设网站的公司seo优化6个实用技巧

HTML详解连载(1) HTML定义HTML 超文本标记语言标签语法注意拓展 HTML基本骨架解释VS Code 快速生成骨架:标签的关系父子关系(嵌套关系)兄弟关系(并列关系) 代码格式注释 标题标签标签名:h1-h6(双…