aws ec2 选择可用区_AWS Messaging Services:选择合适的服务
aws ec2 選擇可用區(qū)
1. AWS消息服務(wù)
AWS Messaging服務(wù)使云中相似和不同的軟件系統(tǒng)能夠異步通信和交換信息。 這些軟件系統(tǒng)可能不兼容且使用不同的語(yǔ)言,也可能在不同的平臺(tái)上。 AWS消息傳遞服務(wù)具有高度可用性,高度可擴(kuò)展性和高度可靠性。 AWS支持針對(duì)不同類型用例的多種消息傳遞服務(wù)。 在本文中,我們將討論各種AWS消息服務(wù),并根據(jù)應(yīng)用程序需求選擇合適的消息服務(wù)。
消息服務(wù)允許通常不兼容且在不同平臺(tái)上以不同編程語(yǔ)言開發(fā)的不同軟件系統(tǒng)進(jìn)行通信和交換信息。
2. Amazon SQS(簡(jiǎn)單隊(duì)列服務(wù))
Amazon SQS是一種分布式隊(duì)列Web服務(wù),用于在軟件系統(tǒng)之間異步交換消息。 SQS用于開發(fā)具有解耦組件的大規(guī)模分布式系統(tǒng),而無(wú)需擔(dān)心創(chuàng)建和管理隊(duì)列。 SQS有兩種類型,標(biāo)準(zhǔn)和先進(jìn)先出。 FIFO隊(duì)列維護(hù)生成和使用的消息的順序,并提供一次精確的傳遞機(jī)制。 標(biāo)準(zhǔn)隊(duì)列嘗試保留訂單,但很靈活,并且至少提供一次交貨。 “標(biāo)準(zhǔn)隊(duì)列”中的消息可以多次傳遞,“標(biāo)準(zhǔn)隊(duì)列”提供高吞吐量。
隨著請(qǐng)求數(shù)量的增長(zhǎng),Amazon SQS會(huì)水平擴(kuò)展。 SQS中的消息是使用服務(wù)器端加密進(jìn)行加密的,并且在隊(duì)列中的生命周期內(nèi)都是安全的。
如果您的應(yīng)用程序需要更快的消息處理速度,但是不關(guān)心消息順序或消息的重復(fù)發(fā)送,則“標(biāo)準(zhǔn)隊(duì)列”是最佳選擇。 為了保證訂單的準(zhǔn)確性以及一次交貨,請(qǐng)使用FIFO隊(duì)列。 當(dāng)使用者接收并處理該消息時(shí),該消息將保留在隊(duì)列中,直到將其顯式刪除或消息保留時(shí)間到期為止。 Amazon SQS設(shè)置消息的可見性超時(shí) (默認(rèn)為30秒,最長(zhǎng)為12小時(shí)),以防止其他使用者再次處理同一條消息。
在一對(duì)一消息傳遞,發(fā)送電子郵件,表單和文件處理的情況下,SQS最有用。
SQS整合2.1 SQS限制
- 郵件大小限制為256 KB
- 默認(rèn)情況下,SQS中的郵件將在4天后刪除,但是最多可以延長(zhǎng)14天
- 在標(biāo)準(zhǔn)SQS中,消息可以多次傳遞
2.2 SQS最佳實(shí)踐
- 根據(jù)處理消息所需的時(shí)間,將消息的可見性超時(shí)延長(zhǎng)到處理和刪除消息所需的最長(zhǎng)時(shí)間。
- 如果您不知道從SQS處理消息需要花費(fèi)多長(zhǎng)時(shí)間,請(qǐng)為使用者流程創(chuàng)建心跳并相應(yīng)地延長(zhǎng)可見性超時(shí)。
- 長(zhǎng)時(shí)間輪詢有助于降低Amazon SQS成本。 在實(shí)施長(zhǎng)輪詢時(shí),每個(gè)隊(duì)列使用一個(gè)線程,而不是所有隊(duì)列使用一個(gè)線程。 對(duì)所有隊(duì)列使用一個(gè)線程可能會(huì)導(dǎo)致您的應(yīng)用程序無(wú)法處理其他隊(duì)列中可用的消息。
- 使用唯一消息ID可以防止使用者處理相同的消息。
3. Amazon SNS(簡(jiǎn)單通知服務(wù))
Amazon SNS是一個(gè)完全托管的發(fā)布/訂閱異步推送通知系統(tǒng),消息生產(chǎn)者在其中發(fā)布消息,多個(gè)訂閱者接收消息。 發(fā)布/訂閱消息傳遞模型用于取消應(yīng)用程序的耦合并提高應(yīng)用程序的性能,可伸縮性和可靠性。 推送到SNS的消息將在多個(gè)可用性區(qū)域中保持不變,以防止丟失消息。 SNS向所有訂閱者發(fā)送帶有訂閱URL的消息,訂閱者需要確認(rèn)訂閱才能接收該消息。
SNS允許將消息發(fā)送到多個(gè)服務(wù),包括SQS,Lambda,HTTP,電子郵件,SMS等。AmazonSNS可以與SQS結(jié)合使用,因此發(fā)布到SNS的消息將發(fā)送給每個(gè)SQS和每個(gè)用戶SQS將收到該消息。
SNS訂戶Amazon SNS提供加密的主題,以保護(hù)您的消息免遭未經(jīng)授權(quán)的匿名訪問。 將消息發(fā)布到加密主題后,將立即使用AES-GCM算法和由密鑰管理服務(wù)發(fā)布的客戶主密鑰對(duì)消息進(jìn)行加密。 消息在傳遞到訂閱端點(diǎn)時(shí)被解密。 在刪除SNS主題之前,請(qǐng)確保首先刪除該主題的所有訂閱。 使用SNS,可以將消息從AWS發(fā)送到各種平臺(tái),例如iOS,Android,Java,Node Js,Python,.NET等SDK。
SNS最適合用于事件通知,將消息發(fā)布到多個(gè)訂戶,向每個(gè)SQS隊(duì)列發(fā)送專用消息等用例。
3.1 SNS消息
推送到SNS主題的郵件將具有以下部分。
- MessageId –消息的唯一ID
- 時(shí)間戳–消息創(chuàng)建時(shí)間戳
- TopicArn –消息發(fā)布到的主題
- 類型–交付類型
- UnsubscribeUrl –取消訂閱該主題的鏈接
- 消息–消息有效負(fù)載
- 主題–主題字段
- 簽名–郵件的Base64編碼簽名
- 簽名版本– SNS簽名版本
3.2 SNS局限性
- 來(lái)自SNS的消息可能會(huì)多次傳遞
- 在訂戶失敗的情況下,可以將消息傳遞配置的次數(shù)。
4. Amazon MQ
Amazon MQ是Apache ActiveMQ的托管消息傳遞服務(wù)。 AWS管理ActiveMQ的配置,設(shè)置,修補(bǔ)和維護(hù)。 使用標(biāo)準(zhǔn)API和協(xié)議(例如JMS,NMS,AMQP,STOMP,MQTT和WebSocket),可以輕松遷移現(xiàn)有應(yīng)用程序并將其連接到Amazon MQ。
Amazon MQ提供了消息的高可用性和持久性。 消息生產(chǎn)者和使用者之間的Amazon MQ延遲非常少(單位為毫秒)。 放置在Amazon MQ中的消息始終在多個(gè)可用區(qū)之間冗余存儲(chǔ)。 Amazon MQ支持分布式事務(wù)。 代理名稱在一個(gè)AWS賬戶中應(yīng)該是唯一的,每個(gè)代理最大存儲(chǔ)容量為200GB。
將消息放在Amazon MQ上時(shí),可以觸發(fā)Lambda函數(shù)。 在混合云環(huán)境中,可將本地?cái)?shù)據(jù)中心中的ActiveMQ與云上的Amazon MQ集成在一起以交換消息。 請(qǐng)參閱此文檔,以將Java應(yīng)用程序與Amazon MQ連接以及創(chuàng)建消息生產(chǎn)者和使用者。
Amazon MQ集成4.1 Amazon MQ的最佳實(shí)踐
- Amazon MQ使用其安全管理的加密密鑰對(duì)靜態(tài)消息和傳輸中的消息進(jìn)行加密。 強(qiáng)烈建議同時(shí)使用客戶端加密。
- 要針對(duì)速度慢的使用者優(yōu)化Amazon MQ,請(qǐng)將parallelStoreAndDispatchQueues屬性設(shè)置為false 。
- 使用正確的代理實(shí)例類型以提高吞吐量
- 在多生產(chǎn)者和多消費(fèi)者應(yīng)用程序的情況下,為多個(gè)生產(chǎn)者按需創(chuàng)建大量連接可能效率很低。 使用連接池而不是使用PooledConnectionFactory類。 不要在消息使用者上使用PooledConnectionFactory 。
4.2配置連接池(來(lái)自AWS
// Create a connection factory. final ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(wireLevelEndpoint);// Pass the username and password. connectionFactory.setUserName(activeMqUsername); connectionFactory.setPassword(activeMqPassword);// Create a pooled connection factory. final PooledConnectionFactory pooledConnectionFactory = new PooledConnectionFactory(); pooledConnectionFactory.setConnectionFactory(connectionFactory); pooledConnectionFactory.setMaxConnections(10);// Establish a connection for the producer. final Connection producerConnection = pooledConnectionFactory.createConnection(); producerConnection.start();4.3 Amazon MQ限制
- 每個(gè)AWS賬戶的每個(gè)代理實(shí)例類型的代理數(shù)量限制為20
- 限制為每個(gè)代理的安全組數(shù)為5
- 每個(gè)經(jīng)紀(jì)人的存儲(chǔ)容量限制為200GB
5.亞馬遜Kinesis
Amazon Kinesis是一項(xiàng)完全托管的Web服務(wù),用于實(shí)時(shí)處理大數(shù)據(jù)。 Kinesis有助于收集,處理和分析實(shí)時(shí)流數(shù)據(jù),以深入了解信息。 使用Kinesis,可以在數(shù)據(jù)到達(dá)并立即響應(yīng)時(shí)對(duì)其進(jìn)行分析。 使用Kinesis,可以分析視頻,音頻,應(yīng)用程序日志,網(wǎng)站點(diǎn)擊流和IoT遙測(cè)。 Amazon Kinesis具有高度的可擴(kuò)展性,并且可以處理幾乎任何數(shù)量的流數(shù)據(jù)并處理來(lái)自成千上萬(wàn)個(gè)來(lái)源的數(shù)據(jù),而幾乎沒有延遲。 Kinesis每小時(shí)可以處理來(lái)自各種數(shù)據(jù)流的TB級(jí)數(shù)據(jù)。 Kinesis保持消息的順序。
運(yùn)動(dòng)整合Amazon Kinesis最適合用于諸如收集和分析溫度,濕度傳感器等傳感器數(shù)據(jù)之類的用例。它還可以可靠地吸收所有市場(chǎng)數(shù)據(jù)并建立實(shí)時(shí)分析。
5.1運(yùn)動(dòng)學(xué)限制
- 數(shù)據(jù)Blob大小限制為1 MB
- 默認(rèn)情況下,消息會(huì)在24小時(shí)后從信息流中刪除,但最多可以延長(zhǎng)7天
6.亞馬遜Pinpoint
Amazon Pinpoint是托管在Amazon Web Services上的完全托管的營(yíng)銷和分析服務(wù)。 使用Amazon Pinpoint營(yíng)銷團(tuán)隊(duì)可以獲取見識(shí)以加強(qiáng)活動(dòng)并確定如何與客戶群進(jìn)行有效溝通。 使用Amazon Pinpoint,營(yíng)銷人員可以定義活動(dòng)計(jì)劃,以向應(yīng)用程序最終用戶發(fā)送定向消息。
Amazon Pinpoint可以與移動(dòng)和Web應(yīng)用程序集成,以深入了解客戶如何與您的應(yīng)用程序進(jìn)行交互。 它還有助于發(fā)送有針對(duì)性的電子郵件,SMS,推送通知和語(yǔ)音消息,還可以跟蹤客戶如何響應(yīng)您的消息,即已發(fā)送,打開或單擊的消息數(shù)。 這對(duì)于發(fā)送促銷或教育內(nèi)容以吸引和留住用戶很有用。
Amazon Pinpoint有用的一些用例是:
- 匯總所有營(yíng)銷活動(dòng)的數(shù)據(jù)
- 提供有關(guān)您安裝了應(yīng)用的設(shè)備的信息的人口統(tǒng)計(jì)圖
- 有關(guān)用戶參與度和廣告系列指標(biāo)的分析
- 有關(guān)應(yīng)用程序使用時(shí)間和客戶保留率的分析
- 收入圖表,提供有關(guān)客戶購(gòu)買及其產(chǎn)生的收入的詳細(xì)信息
- 用戶身份驗(yàn)證分析
7.亞馬遜物聯(lián)網(wǎng)代理
AWS IoT消息代理是一項(xiàng)托管的高吞吐量發(fā)布者/訂閱者代理服務(wù),可用于向AWS IoT收發(fā)消息。 客戶端將有關(guān)主題的消息發(fā)送到AWS IoT。 該消息代理將消息發(fā)送給該主題的所有注冊(cè)客戶端。 使用AWS IoT,可以以低延遲安全地傳輸所有IoT設(shè)備之間的消息。 根據(jù)消息量,可以自動(dòng)縮放消息代理。 AWS IoT支持一對(duì)一消息傳遞或百萬(wàn)廣播通知系統(tǒng)。 AWS文檔中列出了更多AWS IoT功能。
翻譯自: https://www.javacodegeeks.com/2019/03/aws-messaging-services-choosing-right-service.html
aws ec2 選擇可用區(qū)
總結(jié)
以上是生活随笔為你收集整理的aws ec2 选择可用区_AWS Messaging Services:选择合适的服务的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java查找链表中间元素_如何通过Jav
- 下一篇: 电脑windows无法启动怎么办电脑wi