Amazon Simple Queue Service ( Amazon SQS ) es un servicio de cola de mensajes distribuido introducido por Amazon.com como versión beta a finales de 2004 y disponible de forma general a mediados de 2006. [1] [2] Admite el envío programático de mensajes a través de aplicaciones de servicios web como una forma de comunicarse a través de Internet. SQS está destinado a proporcionar una cola de mensajes alojada altamente escalable que resuelva los problemas que surgen del problema común entre productor y consumidor o de la conectividad entre productor y consumidor.
Amazon SQS puede describirse como una mercantilización del servicio de mensajería. Ejemplos conocidos de tecnologías de servicios de mensajería incluyen IBM WebSphere MQ y Microsoft Message Queuing . A diferencia de estas tecnologías, los usuarios no necesitan mantener su propio servidor. Amazon lo hace por ellos y vende el servicio SQS a una tarifa por uso.
API
Amazon proporciona SDK en varios lenguajes de programación, incluidos: [3]
En diciembre de 2014 se lanzó un cliente Java Message Service (JMS) 1.1 para Amazon SQS. [ cita requerida ]
Autenticación
Amazon SQS proporciona procedimientos de autenticación para permitir el manejo seguro de los datos. Amazon utiliza su identificación de Amazon Web Services (AWS) para hacer esto, requiriendo que los usuarios tengan una cuenta habilitada para AWS con Amazon.com . AWS asigna un par de identificadores relacionados, sus claves de acceso de AWS, a una cuenta habilitada para AWS para realizar la identificación. El primer identificador es una clave de acceso pública de 20 caracteres. Esta clave se incluye en una solicitud de servicio de AWS para identificar al usuario. Si el usuario no está utilizando SOAP con WS-Security , se calcula una firma digital utilizando la clave de acceso secreta. La clave de acceso secreta es un identificador privado de 40 caracteres. AWS utiliza el ID de clave de acceso proporcionado en una solicitud de servicio para buscar la clave de acceso secreta de una cuenta. Amazon.com luego calcula una firma digital con la clave. Si coinciden, el usuario se considera auténtico, si no, la autenticación falla y la solicitud no se procesa.
Entrega de mensajes
Amazon SQS garantiza la entrega al menos una vez . Los mensajes se almacenan en varios servidores para garantizar la redundancia y la disponibilidad. Si se entrega un mensaje mientras un servidor no está disponible, es posible que no se elimine de la cola de ese servidor y se vuelva a enviar. A partir de 2007 [actualizar], Amazon SQS no garantiza que el destinatario reciba los mensajes en el orden en que los envió el remitente. Si el orden de los mensajes es importante, se requiere que la aplicación coloque información de secuencia dentro de los mensajes para permitir la reordenación después de la entrega.
Los mensajes pueden ser de cualquier tipo y los datos que contienen no están restringidos. Los cuerpos de los mensajes inicialmente estaban limitados a 8 KB de tamaño, pero luego se aumentó a 64 KB el 1 de julio de 2010 [4] y luego a 256 KB el 18 de junio de 2013 [5] . Para mensajes más grandes, el usuario tiene algunas opciones para sortear esta limitación. Un mensaje grande se puede dividir en varios segmentos que se envían por separado, o los datos del mensaje se pueden almacenar utilizando Amazon Simple Storage Service (Amazon S3) o Amazon DynamoDB con solo un puntero a los datos transmitidos en el mensaje SQS. Amazon ha puesto a disposición una biblioteca de cliente extendida para este propósito [6] .
El servicio admite colas ilimitadas y tráfico de mensajes.
Eliminación de mensajes
SQS no elimina automáticamente los mensajes una vez enviados. Cuando se entrega un mensaje, se genera un identificador de recibo para esa entrega y se envía al destinatario. Estos recibos no se envían con el mensaje, sino además de él. SQS requiere que el destinatario proporcione el recibo para eliminar un mensaje. Esta característica es nueva a partir de 2008, cuando solo se requería el ID del mensaje para eliminarlo. Debido a que el sistema es distribuido, un mensaje puede enviarse más de una vez. En este caso, se necesita el identificador de recibo más reciente para eliminar el mensaje. Además, el identificador de recibo puede tener otras restricciones de validez; por ejemplo, el identificador de recibo puede ser válido solo durante el tiempo de espera de visibilidad (consulte a continuación).
Una vez que se envía un mensaje, tiene un tiempo de espera de visibilidad para evitar que otros componentes lo consuman. El "reloj" para el tiempo de espera de visibilidad comienza una vez que se envía un mensaje; el tiempo predeterminado es de 30 segundos. Si no se le indica a la cola que elimine el mensaje durante este tiempo, el mensaje se vuelve visible nuevamente y estará presente.
Cada cola también consta de un parámetro de retención que tiene un valor predeterminado de 4 días. Cualquier mensaje que permanezca en la cola durante más tiempo se eliminará automáticamente. El usuario puede modificar la retención desde 1 minuto hasta 14 días. Si se modifica la retención mientras los mensajes ya están en la cola, se eliminará cualquier mensaje que haya permanecido en la cola durante más tiempo que la nueva retención.
Uso notable
Algunos ejemplos de empresas que utilizan ampliamente SQS incluyen:
- Dropbox [ cita requerida ]
- Netflix [7]
- Al lado [8]
- Amazon.com [ cita requerida ]
Véase también
- Servicio de mensajes Java
- Cola de mensajes
- Cola de mensajes como servicio
- Servicio de mensajería en la nube de Oracle
Referencias
- ^ "Lanzamiento del servicio Amazon Simple Queue". Amazon Web Services . 13 de julio de 2006 . Consultado el 29 de octubre de 2021 .
- ^ Barr, Jeff (19 de agosto de 2014). "Mis primeros 12 años en Amazon.com". jeff-barr.com . Consultado el 11 de enero de 2021 .
- ^ AWS (2024). "SDK y herramientas de AWS" . Consultado el 29 de mayo de 2024 .
- ^ "Amazon SQS presenta el nivel gratuito y agrega compatibilidad con mensajes más grandes y una retención más prolongada". aws.amazon.com . 2010-07-01 . Consultado el 2021-01-11 .
- ^ "Amazon SQS y SNS anuncian cargas útiles de 256 KB". aws.amazon.com . 2013-06-18 . Consultado el 2021-01-11 .
- ^ Una extensión del cliente Amazon SQS que permite enviar y recibir mensajes de hasta 2 GB a través de Amazon S3. en GitHub
- ^ Granqvist, Hans (18 de abril de 2011). «"Más como esto..." Construyendo una red de similitudes». Blog de tecnología de Netflix . Archivado desde el original el 28 de noviembre de 2016.
- ^ Fang, Wenbin (13 de agosto de 2014). "Nextdoor Taskworker: simple, eficiente y escalable". Nextdoor Engineering .