2017-02-22 1 views
0

Je suis totalement nouveau sur AWS et j'ai une expérience Java limitée. Cependant, ma mission consiste à prendre en charge une solution hybride dans laquelle une application client Java installée sur site envoie des messages JMS (Spring JMS) à Amazon SQS. Une application serveur fonctionnant sur EC2 récupère le message de SQS, le traite et envoie un message de réponse à une autre file d'attente. Ensuite, la même application cliente récupérera le message de réponse et le processus se terminera.AWS SQS en tant que JMS, messages envoyés/reçus depuis une application sur site

Ma question est, une application client installée sur site peut-elle utiliser JMS pour envoyer des messages à Amazon SQS? Si oui, comment l'échange de messages est-il sécurisé (SSL)?

Question supplémentaire: AWS facture comme 0,4 $ par millions de messages. Lorsque mon application client fait des requêtes d'interrogation, sera-t-elle considérée comme un message même si une file d'attente est vide?

Amitiés

Allan H.

Répondre

1

Une application sur prémisse peut facilement envoyer des messages à une file d'attente SQS. Il pourrait traduire ces messages à partir de JMS et les envoyer via SQS. Tous les points de terminaison AWS prennent en charge SSL (voir this list pour les noms de point de terminaison) et, bien que vous puissiez utiliser HTTP, la valeur par défaut est HTTPS.

En norme JEE le code ressemblerait ci-dessous - il ne devrait pas être mal à se traduire printemps:

@MessageDriven(...) 
public class MyMessageListener implements MessageListener { 
    @Override 
    public void onMessage(Message message) { 
     ObjectMessage objectMessage = (ObjectMessage) message; 

     MyObject myObject = (MyObject)(objectMessage.getObject()); 
     // stringify myObject - just an example 
     String stringToSend = new Gson().toJson(myObject); 

     SendMessageRequest sendMessageRequest = new SendMessageRequest() 
        .withQueueUrl(queueUrl) 
        .withMessageBody(stringToSend); 

     amazonSQS.sendMessage(sendMessageRequest); 
    } 
} 

Ce code laisse à l'initialisation mais nous l'espérons vous donner une idée de ce que vous ll besoin.

En ce qui concerne les coûts, vous avez évidemment vu le SQS pricing page. Je reconnais que je ne suis pas sûr des coûts du sondage. Il y a des données transférées dans un sondage "vide" mais je ne suis pas sûr de ce que ça va coûter.

+0

Thx pour la réponse. Donc, ce morceau de code peut s'exécuter sur site et envoyer des messages à SQS? Je ne suis pas vraiment sûr de votre réponse JMS alors laissez-moi essayer d'être plus clair: puis-je utiliser JMS (JMS 1.1 devrait être supporté par SQS) avec une certaine sécurité sur site (ex SSL) pour envoyer/recevoir des messages vers/depuis SQS? – LilleElefant