aws SQS可视化超时

2023-12-21 04:38
文章标签 可视化 超时 aws sqs

本文主要是介绍aws SQS可视化超时,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

当消费者从队列中接收并处理一个消息时,该消息会留在队列中。Amazon SQS不会自动删除该消息。因为Amazon SQS是一个分布式系统,不能保证消费者真正收到消息(例如,由于连接问题,或由于消费者应用程序中的问题)。因此,消费者在接收和处理消息后必须从队列中删除该消息。
在这里插入图片描述
在收到一个消息后,它立即留在队列中。为了防止其他消费者再次处理该消息,Amazon SQS设置了一个可见性超时,即Amazon SQS防止其他消费者接收和处理该消息的时间段。一个消息的默认可见性超时是30秒。最小是0秒。最大的是12小时。有关使用控制台为队列配置可见性超时的信息。

正在飞行中的信息

一个Amazon SQS消息有三种基本状态。
1.由生产者发送至队列。
2.由消费者从队列中接收。
3.从队列中删除。

当生产者将消息发送到队列中,但消费者还没有从队列中接收到消息时(即状态1和状态2之间),该消息被认为是被存储的。对存储的消息的数量没有配额。当消费者从队列中收到一条消息,但尚未从队列中删除时(即在状态2和3之间),该消息被认为是在飞行。对飞行中的消息的数量是有配额的。
对于大多数标准队列(取决于队列流量和消息积压),最多可以有大约120,000条飞行中的消息(消费者从队列中收到,但尚未从队列中删除)。如果您在使用短轮询时达到这个配额,Amazon SQS会返回OverLimit错误信息。如果您使用长轮询,Amazon SQS不会返回错误信息。为了避免达到配额,你应该在处理完信息后从队列中删除这些信息。您也可以增加您用来处理消息的队列的数量。要请求增加配额,请提交一个支持请求。
对于先进先出的队列,最多可以有20,000条机内消息(消费者从队列中收到,但尚未从队列中删除)。如果你达到这个配额,Amazon SQS不会返回错误信息。

设置可见性超时

可见性超时从Amazon SQS返回一个消息时开始。在这段时间内,消费者会处理并删除该消息。但是,如果消费者在删除消息之前失败了,并且您的系统在可见性超时之前没有为该消息调用DeleteMessage动作,那么该消息对其他消费者来说就变得可见了,并且该消息会被再次接收。如果一个消息必须只被接收一次,你的消费者应该在可见性超时的时间内删除它。
每个Amazon SQS队列的默认可见性超时设置为30秒。你可以为整个队列改变这个设置。通常情况下,你应该将可见性超时设置为你的应用程序处理和删除队列中的消息所需的最大时间。当接收消息时,你也可以为返回的消息设置一个特殊的可见性超时,而不改变整个队列的超时。欲了解更多信息,请参见及时处理消息一节中的最佳做法。
如果你不知道处理一个消息需要多长时间,为你的消费者进程创建一个心跳。指定初始可见性超时(例如,2分钟),然后–只要你的消费者仍然在处理消息–保持每分钟延长2分钟的可见性超时。

改变信息的可见度超时

当你从队列中收到一条消息并开始处理它时,队列的可见性超时可能不够(例如,你可能需要处理并删除一条消息)。你可以通过使用ChangeMessageVisibility动作指定一个新的超时值来缩短或延长消息的可见性。
例如,如果一个队列的默认超时是60秒,从你收到消息到现在已经过了15秒,而你发送的ChangeMessageVisibility调用的VisibilityTimeout设置为10秒,那么这10秒就从你发出ChangeMessageVisibility调用的时候开始计算。因此,任何试图改变可见性超时或在你最初改变可见性超时(总共25秒)10秒后删除该消息的尝试都可能导致错误。

终止一个消息的可见性超时

当你从队列中收到一个消息时,你可能会发现你实际上并不想处理和删除这个消息。Amazon SQS允许你终止特定消息的可见性超时。这使得该消息对系统中的其他组件立即可见,并可用于处理。
要在调用ReceiveMessage后终止消息的可见性超时,请在VisibilityTimeout设置为0秒时调用ChangeMessageVisibility。

这篇关于aws SQS可视化超时的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/518669

相关文章

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

使用Folium在Python中进行地图可视化的操作指南

《使用Folium在Python中进行地图可视化的操作指南》在数据分析和可视化领域,地图可视化是一项非常重要的技能,它能够帮助我们更直观地理解和展示地理空间数据,Folium是一个基于Python的地... 目录引言一、Folium简介与安装1. Folium简介2. 安装Folium二、基础使用1. 创建

基于Python开发PDF转PNG的可视化工具

《基于Python开发PDF转PNG的可视化工具》在数字文档处理领域,PDF到图像格式的转换是常见需求,本文介绍如何利用Python的PyMuPDF库和Tkinter框架开发一个带图形界面的PDF转P... 目录一、引言二、功能特性三、技术架构1. 技术栈组成2. 系统架构javascript设计3.效果图

Java中实现订单超时自动取消功能(最新推荐)

《Java中实现订单超时自动取消功能(最新推荐)》本文介绍了Java中实现订单超时自动取消功能的几种方法,包括定时任务、JDK延迟队列、Redis过期监听、Redisson分布式延迟队列、Rocket... 目录1、定时任务2、JDK延迟队列 DelayQueue(1)定义实现Delayed接口的实体类 (

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Java CompletableFuture如何实现超时功能

《JavaCompletableFuture如何实现超时功能》:本文主要介绍实现超时功能的基本思路以及CompletableFuture(之后简称CF)是如何通过代码实现超时功能的,需要的... 目录基本思路CompletableFuture 的实现1. 基本实现流程2. 静态条件分析3. 内存泄露 bug

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

Python中的可视化设计与UI界面实现

《Python中的可视化设计与UI界面实现》本文介绍了如何使用Python创建用户界面(UI),包括使用Tkinter、PyQt、Kivy等库进行基本窗口、动态图表和动画效果的实现,通过示例代码,展示... 目录从像素到界面:python带你玩转UI设计示例:使用Tkinter创建一个简单的窗口绘图魔法:用

Springboot使用RabbitMQ实现关闭超时订单(示例详解)

《Springboot使用RabbitMQ实现关闭超时订单(示例详解)》介绍了如何在SpringBoot项目中使用RabbitMQ实现订单的延时处理和超时关闭,通过配置RabbitMQ的交换机、队列和... 目录1.maven中引入rabbitmq的依赖:2.application.yml中进行rabbit

Android WebView的加载超时处理方案

《AndroidWebView的加载超时处理方案》在Android开发中,WebView是一个常用的组件,用于在应用中嵌入网页,然而,当网络状况不佳或页面加载过慢时,用户可能会遇到加载超时的问题,本... 目录引言一、WebView加载超时的原因二、加载超时处理方案1. 使用Handler和Timer进行超