aws ec2 选择可用区
1. AWS消息服务
AWS Messaging服务使云中相似和不同的软件系统能够异步通信和交换信息。 这些软件系统可能不兼容且使用不同的语言,也可能在不同的平台上。 AWS消息传递服务具有高度可用性,高度可扩展性和高度可靠性。 AWS支持针对不同类型用例的多种消息传递服务。 在本文中,我们将讨论各种AWS消息服务,并根据应用程序需求选择合适的消息服务。
消息服务允许通常不兼容且在不同平台上以不同编程语言开发的不同软件系统进行通信和交换信息。
2. Amazon SQS(简单队列服务)
Amazon SQS是一种分布式队列Web服务,用于在软件系统之间异步交换消息。 SQS用于开发具有解耦组件的大规模分布式系统,而无需担心创建和管理队列。 SQS有两种类型,标准和先进先出。 FIFO队列维护生成和使用的消息的顺序,并提供一次精确的传递机制。 标准队列尝试保留订单,但很灵活,并且至少提供一次交货。 “标准队列”中的消息可以多次传递,“标准队列”提供高吞吐量。
随着请求数量的增长,Amazon SQS会水平扩展。 SQS中的消息是使用服务器端加密进行加密的,并且在队列中的生命周期内都是安全的。
如果您的应用程序需要更快的消息处理速度,但是不关心消息顺序或消息的重复发送,则“标准队列”是最佳选择。 为了保证订单的准确性以及一次交货,请使用FIFO队列。 当使用者接收并处理该消息时,该消息将保留在队列中,直到将其显式删除或消息保留时间到期为止。 Amazon SQS设置消息的可见性超时 (默认为30秒,最长为12小时),以防止其他使用者再次处理同一条消息。
在一对一消息传递,发送电子邮件,表单和文件处理的情况下,SQS最有用。
Amazon SNS提供加密的主题,以保护您的消息免遭未经授权的匿名访问。 将消息发布到加密主题后,将立即使用AES-GCM算法和由密钥管理服务发布的客户主密钥对消息进行加密。 消息在传递到订阅端点时被解密。 在删除SNS主题之前,请确保首先删除该主题的所有订阅。 使用SNS,可以将消息从AWS发送到各种平台,例如iOS,Android,Java,Node Js,Python,.NET等SDK。
SNS最适合用于事件通知,将消息发布到多个订户,向每个SQS队列发送专用消息等用例。
3.1 SNS消息
推送到SNS主题的邮件将具有以下部分。
- MessageId –消息的唯一ID
- 时间戳–消息创建时间戳
- TopicArn –消息发布到的主题
- 类型–交付类型
- UnsubscribeUrl –取消订阅该主题的链接
- 消息–消息有效负载
- 主题–主题字段
- 签名–邮件的Base64编码签名
- 签名版本– SNS签名版本
3.2 SNS局限性
- 来自SNS的消息可能会多次传递
- 在订户失败的情况下,可以将消息传递配置的次数。
4. Amazon MQ
Amazon MQ是Apache ActiveMQ的托管消息传递服务。 AWS管理ActiveMQ的配置,设置,修补和维护。 使用标准API和协议(例如JMS,NMS,AMQP,STOMP,MQTT和WebSocket),可以轻松迁移现有应用程序并将其连接到Amazon MQ。
Amazon MQ提供了消息的高可用性和持久性。 消息生产者和使用者之间的Amazon MQ延迟非常少(单位为毫秒)。 放置在Amazon MQ中的消息始终在多个可用区之间冗余存储。 Amazon MQ支持分布式事务。 代理名称在一个AWS账户中应该是唯一的,每个代理最大存储容量为200GB。
将消息放在Amazon MQ上时,可以触发Lambda函数。 在混合云环境中,可将本地数据中心中的ActiveMQ与云上的Amazon MQ集成在一起以交换消息。 请参阅此文档,以将Java应用程序与Amazon MQ连接以及创建消息生产者和使用者。