2012-09-13 19 views
6

Per la prima volta mi sono imbattuto in Amazon SQS e Amazon SNS. Lavorerò con questi al mio posto di lavoro in Java.Utilizzo di Amazon SQS e SNS in Java

Ho un paio di domande su questi,

  1. non ho che gran parte della conoscenza di Java, non posso dire che sono andato avanzato ma sì posso dire che ho una conoscenza intermedia . Quindi va bene per me toccare queste aree?

  2. Quali sono esattamente questi servizi e come sono utili? Un esempio del mondo reale sarebbe utile.

Qualsiasi suggerimento o commento sarà utile.

risposta

4

Non direi che hai bisogno di una conoscenza avanzata di Java per usarli - ma perché non provare a giudicare da solo? L'SDK AWS per Java è disponibile al http://aws.amazon.com/sdkforjava/

Sono disponibili informazioni introduttive allo http://aws.amazon.com/sns/ e http://aws.amazon.com/sqs/ e collegamenti alla documentazione dettagliata.

SQS è utile quando è necessario inviare messaggi affidabili e asincroni tra parti di un sistema su Internet. Ti consente di risparmiare tempo e denaro per configurare il tuo servizio di messaggistica affidabile e offre scalabilità. È utile quando i messaggi non devono arrivare istantaneamente, ma non devono scomparire. La fatturazione (record di vendita) e altre transazioni finanziarie non temporali sarebbero un esempio. Nota che SQS offre un comportamento "almeno una volta" - in rari casi può inviare un messaggio più di una volta.

SNS è publish-subscribe, anziché in base alla coda; è uno stile di messaggistica più orientato al consumatore che utilizza argomenti e abbonamenti piuttosto che semplici code. Questo stile è utile quando il produttore di informazioni potrebbe non conoscere tutti i potenziali consumatori delle informazioni e le loro esatte esigenze. Vedere le applicazioni di esempio nelle domande frequenti su http://aws.amazon.com/sns/faqs/#0

5

Devono essere utilizzate per supportare comunicazioni affidabili tra i componenti del software. Penso che la domanda principale sia la ragione per cui è necessario suddividere i servizi in diversi componenti/livelli.

mi si avvicinò con alcuni casi di utilizzo:

  • processo lungo in esecuzione che potrebbero influire web reattività: un esempio più comune è l'elaborazione degli ordini in cui la ricarica delle carte di pagamento/credito può essere un po 'lento , si crea un servizio che fornisce all'utente una risposta rapida, quindi invia un messaggio a una coda SQS, che attiva un componente di backoffice che fa tutto il lavoro pesante;

  • diverso scalabilità profili: un esempio comune sarebbe un'applicazione web dove caricare i video e codifica per diverse piattaforme, si potrebbe desiderare di creare diversi gruppi di scalatura automatica con diversi componenti, video caricato/navigazione (molti server) e codifica video con meno server ma con una capacità maggiore, l'utilizzo sarebbe simile all'esempio precedente.

  • attivare l'esecuzione di attività parallele: dopo che l'ordine viene processato è necessario inviare una e-mail al vostro cliente, informare il magazzino per preparare i costumi per la consegna, dirà il servizio di trasporto di pick-up dei prodotti Il magazzino e fornire ai clienti affrontare, allora si dovrebbe utilizzare un argomento SNS in cui si pubblica un evento di business e hanno 3 componenti ascolto che effettuare le seguenti operazioni:

    1. formattazione della posta e l'invio di
    2. Magazzino servizio di chiamata
    3. trasp servizio di ort chiamata

Ci potrebbero essere molti scenari altri usi, se dite che cosa la soluzione deve fare, forse potremmo aiutare di più preciselly.

Problemi correlati