2012-09-13 19 views
6

Por primera vez me he encontrado con Amazon SQS y Amazon SNS. Trabajaré con estos en mi lugar de trabajo en Java.Trabajando con Amazon SQS & SNS en Java

tengo algunas preguntas acerca de estos,

  1. no tengo que gran parte de los conocimientos de Java, no puedo decir que he ido avanzado, pero sí puedo decir que tengo un conocimiento intermedio . Entonces, ¿está bien para mí tocar estas áreas?

  2. ¿Qué son exactamente estos servicios y cómo son útiles? Un ejemplo del mundo real sería útil.

Cualquier sugerencia o comentario te será útil.

Respuesta

4

No diría que necesita conocimientos avanzados de Java para usarlos, pero ¿por qué no probar y juzgar por usted mismo? El AWS SDK para Java está disponible en http://aws.amazon.com/sdkforjava/

Hay información introductoria en http://aws.amazon.com/sns/ y http://aws.amazon.com/sqs/ y enlaces a la documentación detallada.

SQS es útil siempre que necesite enviar mensajes asincrónicos confiables entre partes de un sistema a través de Internet. Le ahorra el esfuerzo y el gasto de configurar su propio servicio de mensajería confiable y proporciona escalabilidad. Es útil cuando los mensajes no tienen que llegar al instante, pero no deben desaparecer. Facturación (registros de venta) y otras transacciones financieras que no son de tiempo crítico serían un ejemplo. Tenga en cuenta que SQS ofrece un comportamiento "al menos una vez"; en casos excepcionales, puede enviar un mensaje más de una vez.

SNS es publicar-suscribir, en lugar de basado en cola; es un estilo de mensajería más orientado al consumidor que utiliza temas y suscripciones en lugar de colas simples. Este estilo es útil cuando el productor de información puede no conocer a todos los consumidores potenciales de la información y sus necesidades exactas. Consulte las aplicaciones de ejemplo en las preguntas más frecuentes al http://aws.amazon.com/sns/faqs/#0

5

Se deben utilizar para admitir la comunicación confiable entre los componentes de su software, creo que la pregunta principal aquí es por qué debe dividir sus servicios en varios componentes/niveles.

me ocurrió con algunos casos de uso:

  • proceso de larga ejecución que podrían afectar a la capacidad de respuesta web: un ejemplo más común es el procesamiento de pedidos, donde la carga de tarjetas de pago/crédito puede ser un poco lento , crea un servicio que le da al usuario una respuesta rápida, luego envía un mensaje a una cola SQS, lo que activa un componente de backoffice que hace todo el trabajo pesado; Perfiles

  • escalabilidad diferente: un ejemplo común sería una aplicación web donde subir videos y codifica para varias plataformas, es posible que desee crear diferentes grupos de escalado automático con diferentes componentes, la carga de vídeo/navegación (muchos servidores) y video que codifica menos servidores pero con mayor capacidad, el uso sería similar al del ejemplo anterior.

  • ejecución de desencadenador de actividades paralelas: después de la orden es procesada debe enviar un correo electrónico a su cliente, notificar al almacén para preparar las aduanas para la entrega, decirle al servicio de transporte para recoger los artículos en el almacén y ofrecer a los clientes a resolver, entonces usted debe utilizar un tema SNS, donde se publica un evento de negocios y tienen 3 componentes escucha que haga lo siguiente:

    1. el formato del correo y el envío de
    2. Almacén llamada de servicio
    3. Transp ORT llamada de servicio

Podría haber muchos escenarios de otros usos, si le dice lo que su solución tiene que hacer, tal vez podríamos ayudar a más preciselly.

Cuestiones relacionadas