2017-02-22 13 views
0

私はAWSを初めて導入しており、Javaの経験は限られています。しかし、私の任命は、社内にインストールされたJavaクライアントアプリケーションがJMSメッセージ(Spring JMS)をAmazon SQSに送信しているハイブリッドソリューションをサポートすることです。 EC2上で動作するサーバアプリケーションは、SQSからメッセージを取り出し、処理し、別のキューに応答メッセージを入れます。同じクライアントアプリケーションが応答メッセージを受け取って処理が完了します。JMSとしてのAWS SQS、オンプレミスのアプリケーションから送受信されたメッセージ

私の質問は、社内にインストールされたクライアントアプリケーションはJMSを使ってAmazon SQSにメッセージを送信できますか?はいの場合、メッセージ交換はどのようにセキュリティ保護されていますか(SSL)?

その他の質問:AWSは、何百万ものメッセージで0,4 $のような請求書です。クライアントアプリケーションがリクエストをポーリングすると、キューが空の場合でもメッセージのように見なされますか?

種類が前提のアプリケーションに

アランH.

答えて

1

アンについては、簡単にSQSキューにメッセージを送信することができます。これらのメッセージをJMSから変換してSQS経由で送信できます。すべてのAWSエンドポイントはSSLをサポートしています(エンドポイント名については​​3210を参照).HTTPを使用することができますが、デフォルトはHTTPSです。

標準JEEのコードは以下のようになります - 春に変換して悪いことではないはずです。

@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); 
    } 
} 

このコードは、初期化を抜けて、それがうまくいけば、あなたに何を」のアイデアを与えるだろう必要があります。

コストに関しては、明らかにSQS pricing pageを見たことがあります。私は、ポーリングの費用がわからないことを認めます。いくつかのデータが「空の」投票で転送されていますが、私はそれがコストになるものは肯定的ではありません。

+0

返信用Thx。だから、このコードはオン・プレミアで実行してSQSにメッセージを送ることができますか? SQSとの間でメッセージを送受信するために、いくつかのセキュリティがオンサイト(SSLなど)で有効になっているJMS(JMS 1.1はSQSでサポートされる必要があります)を使用できますか? – LilleElefant

関連する問題