Amazon Simple Queue Service ( Amazon SQS ) es un servicio de cola de mensajes distribuido introducido por Amazon.com a finales de 2004. [1] 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 tiene por objeto proporcionar un alojada altamente escalable cola de mensajes que los problemas derivados de la Resuelve común problema del productor-consumidor o la conectividad entre el productor y el consumidor.
Desarrollador (es) | Amazon.com |
---|---|
Licencia | Software propietario |
Sitio web | aws |
Amazon SQS puede describirse como una mercantilización del servicio de mensajería. Ejemplos bien conocidos de tecnologías de servicios de mensajería incluyen IBM WebSphere MQ y Microsoft Message Queue Server . 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 Java , Ruby , Python , .NET , PHP , Go y JavaScript . En diciembre de 2014 se lanzó un cliente Java Message Service (JMS) 1.1 para Amazon SQS.
Autenticación
Amazon SQS proporciona procedimientos de autenticación para permitir el manejo seguro de datos. Amazon usa 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á usando SOAP (protocolo) con WS-Security , se calcula una firma digital usando 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; de lo contrario, 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 por motivos de redundancia y para garantizar 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 pueda reenviar. 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 se limitaron inicialmente a un tamaño de 8 KB, pero luego se aumentaron a 64 KB el 1 de julio de 2010 [2] y luego a 256 KB el 18 de junio de 2013. [3] 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 ampliada para este propósito. [4]
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. SQS requiere que el destinatario proporcione el recibo para eliminar un mensaje. Esta función es nueva a partir de 2008, donde solo se requería el ID del mensaje para eliminarlo. Debido a que el sistema está distribuido, es posible que se envíe un mensaje más de una vez. En este caso, se necesita el identificador de recibo más reciente para eliminar el mensaje. Además, el asa de recepción puede tener otras limitaciones de validez; por ejemplo, el identificador de recibo solo puede ser válido durante el tiempo de espera de visibilidad (ver más abajo).
Una vez que se entrega 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 dice a la cola que elimine el mensaje durante este tiempo, el mensaje vuelve a ser visible y estará presente.
Cada cola también consta de un parámetro de retención con 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 cambia la retención mientras los mensajes ya están en la cola, se eliminará cualquier mensaje que haya estado en la cola durante más tiempo que la nueva retención.
Uso notable
Dropbox , Netflix [5] y Nextdoor [6] son ejemplos de empresas que utilizan ampliamente SQS. SQS también se usa ampliamente en Amazon.com.
Ver también
Referencias
- ↑ 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 .
- ^ "Amazon SQS presenta el nivel gratuito y agrega compatibilidad para mensajes más grandes y una mayor retención" . aws.amazon.com . 2010-07-01 . Consultado el 11 de enero de 2021 .
- ^ "Amazon SQS y SNS anuncian cargas útiles grandes de 256 KB" . aws.amazon.com . 2013-06-18 . Consultado el 11 de enero de 2021 .
- ^ Una extensión del cliente de 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). "Trabajador de tareas de Nextdoor: simple, eficiente y escalable" . Ingeniería de Nextdoor .