2017-02-22 21 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?不太清楚你的JMS的答案,所以讓我試試更加清楚:我能否使用JMS(SQS應該支持JMS 1.1)和一些內置的安全性(例如SSL)來向/從SQS發送/接收消息? – LilleElefant

相關問題