网站建设可以自己弄吗知乎自己怎么做商城网站视频教程

diannao/2026/1/18 19:21:29/文章来源:
网站建设可以自己弄吗知乎,自己怎么做商城网站视频教程,网上推广怎么拉客户,网站开发实践报告专栏导航 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、消息丢失的可能性 1.发送消息时丢失#xff1a; 2.MQ导致消息丢失#xff1a; 3.消费者处理消息时消息丢失#xff1a; 二、生产者可靠性 1.生产者重试机制 2.生产者确认机制 总结 前言 Ra… 专栏导航 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、消息丢失的可能性 1.发送消息时丢失 2.MQ导致消息丢失 3.消费者处理消息时消息丢失 二、生产者可靠性 1.生产者重试机制 2.生产者确认机制 总结 前言 RabbitMQ是一个高效、可靠的开源消息队列系统广泛用于软件开发、数据传输、微服务等领域。本文主要介绍了消息丢失的可能性、生产者可靠性中的生产者重试机制和生产者确认机制等内容。 一、消息丢失的可能性 流程图如下 1.发送消息时丢失 生产者发送消息时连接MQ失败当生产者尝试与RabbitMQ建立连接但失败时发送消息的操作将无法完成。这可能是由于网络问题、RabbitMQ服务未运行或配置错误导致的。 生产者发送消息到达MQ后未找到Exchange在RabbitMQ中生产者将消息发送到ExchangeExchange再路由到一个或多个Queue。如果生产者发送消息到达MQ后未找到正确的Exchange那么消息将无法被路由到正确的Queue从而丢失。 生产者发送消息到达MQ的Exchange后未找到合适的Queue即使消息找到了Exchange如果Exchange没有正确配置或没有找到合适的Queue来路由消息那么消息也会丢失。这可能是由于配置错误或Queue不存在导致的。 消息到达MQ后处理消息的进程发生异常在某些情况下当消息到达MQ后处理消息的进程可能会发生异常导致消息无法被处理。这可能是由于代码错误、资源限制或其他系统问题导致的。 2.MQ导致消息丢失 消息到达MQ保存到队列后尚未消费就突然宕机在某些情况下如果RabbitMQ服务突然宕机而消息已经保存到队列中但尚未被消费者消费那么这些消息可能会丢失。为了防止这种情况可以使用持久化配置来确保消息在MQ宕机后仍然保留在磁盘上。 3.消费者处理消息时消息丢失 消息接收后尚未处理突然宕机如果消费者在接收消息后尚未处理就突然宕机那么这些消息可能会丢失。为了防止这种情况可以使用确认机制来确保消息在被消费者成功处理之前一直保留在队列中。 消息接收后处理过程中抛出异常在处理消息的过程中如果消费者代码出现异常并抛出错误那么可能会导致消息处理失败。为了防止这种情况可以对消费者的代码进行充分的测试和异常处理以确保其能够正确、稳定地处理消息。 二、生产者可靠性 1.生产者重试机制 由于网络波动可能会出现客户端连接MO失败的情况为了解决这个问题Spring AMQP提供了消息发送时的重试机制 。 在publisher服务的application.yml文件中添加配置 spring:rabbitmq:connection-timeout: 1s # 设置MQ的连接超时时间template:retry:enabled: true # 开启超时重试机制initial-interval: 1000ms # 失败后的初始等待时间multiplier: 1 # 失败后下次的等待时长倍数下次等待时长initial-interval * multipliermax-attempts: 3 # 最大重试次数 当网络不稳定时重试机制可以有效提高消息发送的成功率。然而Spring AMQP提供的重试机制是阻塞式的这意味着在等待重试的过程中当前线程会被阻塞。对于对业务性能有要求的应用建议禁用重试机制。如果仍需使用建议合理配置等待时长和重试次数并考虑使用异步线程来执行发送消息的代码以避免阻塞主线程。 2.生产者确认机制 RabbitMQ提供了Publisher Confirm和Publisher Return两种确认机制。开启确机制认后当生产者发送消息给MQ后MQ会根据消息处理的情况返回不同的回执。返回的结果有以下几种情况 消息投递到了MQ但是路由失败。此时会通过PublisherReturn返回路由异常原因然后返回ACK告知投递成功。临时消息投递到了MQ并且入队成功返回ACK告知投递成功。持久消息投递到了MQ并且入队完成持久化返回ACK告知投递成功。其他情况都会返回NACK告知投递失败。 ACK和NACK属于Publisher Confirm机制ACK是投递成功NACK是投递失败。return属于Publisher Return机制。默认两种机制都是关闭状态需要通过配置文件来开启。 开启生产者确认 在publisher服务的application.yml文件中添加配置 spring:rabbitmq:publisher-confirm-type: correlated # 开启publisher confirm机制并设置confirm类型publisher-returns: true # 开启publisher return机制 publisher-confirm-type有三种模式一般推荐使用correlated回调机制 none关闭confirm机制simple同步阻塞等待MQ的回执correlatedMQ异步回调返回回执 定义ReturnCallback 在publisher服务定义一个配置类每个RabbitTemplate只能配置一个ReturnCallback Slf4j Configuration public class MqConfirmConfig implements ApplicationContextAware {Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {RabbitTemplate rabbitTemplate applicationContext.getBean(RabbitTemplate.class);// 配置回调rabbitTemplate.setReturnsCallback(new RabbitTemplate.ReturnsCallback() {Overridepublic void returnedMessage(ReturnedMessage returned) {log.info(消息的return callback:);log.info(exchange:{}, key:{}, msg:{}, code:{}, text:{},returned.getExchange(), returned.getRoutingKey(), returned.getMessage(), returned.getReplyCode(), returned.getReplyText());}});} } 定义ConfirmCallback 由于每条消息的处理逻辑可能不同因此需要在每次发送消息时定义ConfirmCallback当调用RabbitTemplate的convertAndSend方法时需要多传递一个参数。 这个参数是一个CorrelationData对象包含两个核心内容 id这是消息的唯一标识MQ会使用它来判断不同的消息的回执避免混淆。SettableListenableFuture这是一个Future对象MQ将通过它返回回执结果。可以提前为CorrelationData中的Future添加回调函数来处理消息回执。 在publisher服务中的测试类添加一个测试方法实现消息发送并且添加ConfirmCallback Testvoid testConfirmCallback() throws InterruptedException {// 1.创建CorrelationDataCorrelationData cd new CorrelationData(UUID.randomUUID().toString());// 2.添加ConfirmCallbackcd.getFuture().addCallback(new ListenableFutureCallbackCorrelationData.Confirm() {Overridepublic void onFailure(Throwable ex) {log.error(消息回调失败, ex);}Overridepublic void onSuccess(CorrelationData.Confirm result) {log.debug(收到confirm callback回执);if (result.isAck()) {// 消息发送成功log.debug(消息发送成功收到ACK);} else {// 消息发送失败log.error(消息发送失败收到NACK原因{}, result.getReason());}}});rabbitTemplate.convertAndSend(test.direct, red, test, cd);} 生产者确认会带来额外的网络和系统资源开销因此应尽量避免使用。如果确实需要使用则无需开启Publisher-Return机制因为一般路由失败是业务问题。对于NACK消息可以有限次数重试如果仍然失败则记录异常消息。 总结 RabbitMQ是一个开源的消息队列软件旨在提供可靠的消息传递和消息队列功能。本文主要介绍了消息丢失的可能性、生产者可靠性中的生产者重试机制和生产者确认机制等内容希望对大家有所帮助。

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

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

相关文章

三五互联网站报价表推广普通话的意义简短

样例简介 此样例将演示如何在Pegasus Wi-Fi IoT智能家居套件上使用cmsis 2.0 接口进行定时器开发。 工程版本 系统版本/API版本:OpenHarmony 3.0 releaseIDE版本:DevEco Device Tool Release 3.0.0.401 快速上手 准备硬件环境 预装windows系统的PC…

网站开发使用的开发工具酷炫给公司网站欣赏

今晚课题点击【阅读原文】或长按图片【识别图中的二维码】即可参加今晚的课程。

湛江专业建站优质商家wordpress 在线安装

aop 获取注解注释的方法有时,我想记录(通过slf4j和log4j )方法的每次执行,查看其接收的参数,返回的内容以及每次执行花费的时间。 这是我在AspectJ , jcabi-aspects和Java 6注释的帮助下所做的事情&#xf…

网站备案号规则成全视频免费观看在线看城南

小型社区和园区停车场通常面临着空间有限、预算有限以及车流量相对较小的挑战。这些特点要求停车场的管理系统既要经济实用,又要能够满足基本的车辆管理需求,如安全性、通行效率和便捷性。针对这些特点,选择合适的停车道闸系统成为提高管理效…

商城网站开发合同沧州网站推广优化

做数据分析和人工智能运算前常常需要大量的数据准备工作,也就是把各种数据源以及各种规格的数据整理成统一的格式。因为情况非常复杂多样,很难有某种可视化工具来完成此项工作,常常需要编程才能实现。 业界有很多免费的脚本语言都适合进行数…

惠州网站制作定制网站后台不显示

牛客题霸 [括号序列] C题解/答案 题目描述 给出一个仅包含字符’(’,’)’,’{’,’}’,’[‘和’]’,的字符串,判断给出的字符串是否是合法的括号序列 括号必须以正确的顺序关闭,"()“和”()[]{}“都是合法的括号序列,但”(]“和”([…

微网站界面设计基础品牌策划案例范文

题目描述 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ["dog","racecar"…

react怎么做pc网站装修设计效果图怎么收费

本文给大家整理了腾讯视频网页下载_腾讯视频怎么下载视频方面的内容。腾讯视频独播剧质量还是可以的,比较给力的是腾讯视频大量买入了老剧的版权,不乏一些比较经典的港剧,还把这些老剧修复了。腾讯视频播放器是一款支持多种音视频格式的主流播…

化妆品网站设计思路张家港网站设计建设

在日常服务器日志查看中常用到的命令有grep、tail等,有时想查看详细日志,用到vi命令,记录下来,方便查看。 操作文件:test.properites 一、查看与编辑 查看命令:vi 文件名 编辑命令:按键 i&…

南通网站建设培训c2c模式发展趋势

都说女人是男人的肋骨蜕变而来,是男人的心肝.可那一朵一朵微微卷起的发梢,点朱唇,纤细白皙的手指,踩着男人心底高跟鞋的我并不是他美丽的天使,往事在耳边环绕,现在的他人在那里,我不闻不问&…

河北网站备案手机号码短信核验做店招的网站

1,指针的基本概念 指针的作用:可以通过指针间接访问内存 内存的编号是从0开始记录的,一般用十六进制数字表示可以利用指针变量保存地址 上图中的p就是a变量的指针,也可以记作*a 2,指针变量的定义和使用 指针变量定…

哪些网站可以做edge主页服装高级定制品牌

今年5月底的時候FeedBurner才被Google以1億美元買下,在Google大金主的支援下FeedBurner現在免費讓所有的FeedBurner用戶昇級成以前要付費的PRO高級用戶。在FeedBurner後台My Account中可以看到”FeedBurner Stats PRO • Free for the life of your feed”&#xff…

哪家网站搜素引擎优化

【小宅按】我们说url的动态、静态、伪静态三种形式,其实从严格分类上来说,伪静态也是动态的一种,只是表现形式为静态。参考:动态url、静态url和伪静态url的详细讲解 - 好文分享动态URl动态页面的特征1、以ASP、PHP、JSP、ASP.NET …

网站虚拟主持海淀网站建设wzjs51

目录 前言1.char和varchar的区别2.数据库的三大范式3.你了解sql的执行顺序吗?4.索引是什么5.索引的优点和缺点6.索引的类型7.索引怎么设计(优化)8.怎么避免索引失效(也属于sql优化的一种)9.索引的数据类型10.索引为什么使用树结构11.二叉查找树、B树、B树12.为什么使…

什么是最经典最常用的网站推广方式wordpress文件无法创建目录下

1、什么是线程池 java.util.concurrent.Executors提供了一个 java.util.concurrent.Executor接口的实现用于创建线程池 多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。 假设一个服…

网站统计模板江苏苏州

责任链模式概述 责任链模式(Chain of Responsibility Pattern)是一种行为设计模式,它允许对象或对象集合以链式的方式组织在一起,以处理请求在责任链中,每个对象都包含对下一个对象的引用,并且都有机会处理…

滨州建网站公司自建网站平台的页面功能

今天,在配置kettle同步mysql数据的时候,碰到了kettle把空字符串当成null的情况。 解决步骤: 找到配置文件:C:\Users\用户名.kettle目录中找到kettle.properties添加配置:KETTLE_EMPTY_STRING_DIFFERS_FROM_NULLY重启k…

那个视频网站好手机之家报价大全

知行EDI系统主要是用来实现贸易双方的数据交换的过程,这个过程中,贸易双方往往需要根据国际通用的消息格式收发信息,我们称符合国际规范的消息文件为EDI报文,然而不同的公司会结合ERP的接口情况选择不同的集成方式,例如…

手机网站信任从哪里设置企业营销策划及推广

jooq sqljOOQ是“数据库优先”类型的安全SQL API,使您可以直观地用Java编写SQL,就像Java编译器本身支持SQL语言一样。 所有数据库模式,表,列,过程和其他对象均作为Java对象提供,可以直接在jOOQ SQL API中使…

网站建设首选建站系统自建网站需要备案吗

项目需求 职工管理系统可以用来管理公司内所有员工的信息 公司中职工分为三类:普通员工、经理、老板,显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责 普通员工职责:完成经理交给的任务 经理职责:完成老…