簡體   English   中英

AWS SQS和其他服務

[英]AWS SQS and other services

我公司有一個消息傳遞系統,該消息傳遞系統以JSON格式發送實時消息,並且它不是基於AWS構建的,我們的團隊正在嘗試使用AWS SQS接收這些消息,然后將DynamoDB存儲該消息,而我想使用EC2來存儲這些消息。閱讀此消息,然后保存它們任何更好的解決方案? 或如何做,我沒有很好的經驗

首先,EC2是雲上的基礎架構,它類似於具有本地設置操作系統的物理機。 如果您想創建任何將從Amazon SQS(Json格式的消息)中獲取數據並以dynamodb(無Sql數據庫)推送數據的應用程序,則您的設計是正確的,因為SQS和DynamoDb都具有全面的Json支持。 准備好應用程序后,便可以在EC2機器上部署該應用程序。

為實現此目的,您的應用程序必須具有將使用消息的asyc Buffered SQS使用者(sms消息的限制為256KB),因此,無論哪個發布消息的應用程序,消息的大小都應小於256Kb。 請參考以下鏈接以了解sqs消費者

正在使sqs-consumer在sqs可伸縮中檢測receiveMessage事件

使用完來自sqs隊列的消息后,您需要將其保存在dynamodb中,您可以使用crud倉庫輕松地進行處理。 使用存儲庫,您可以直接將json保存在Dynamodb表中,但是請確保根據請求配置預配置寫容量,因為更多的預配置容量將更多的花費。 請參考下面的鏈接來配置表的寫容量。

Dynamodb讀寫單元

通常,您將進行如下設置:

在此處輸入圖片說明

EC2實例(一個或多個)將每隔幾秒鍾讀取一次隊列,以查看是否有任何內容。 如果是這樣,他們會將這些數據寫入DynamoDB。

根據您所說的,您一個月內從SQS讀取的內容將少於1,000,000次,因此您可以從此免費開始。 最初您可以有一個EC2實例,並且可以是一個很小的實例-T2.micro應該綽綽有余。 而且,您不需要在DynamoDB上每秒進行多次寫入。

SQS的優勢在於,如果由於某種原因您的EC2實例暫時不可用,則消息將繼續排隊,並且您不會丟失任何消息。

從編碼的角度來看,您沒有提到您的開發環境,但是有許多適用於各種環境的AWS庫。 我用Java開發和代碼來完成,這將是也許 100線。 我猜想其他語言也會相似。 確保以您使用的語言查看長時間的輪詢-這有助於加快處理速度並節省資金。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM