大数据技术入门(第2版)
上QQ阅读APP看书,第一时间看更新

2.4 云端消息队列

Amazon Simple Queue Service(SQS)是一种完全托管的云端消息队列服务。借助SQS,则可以在软件组件之间发送、存储和接收任何规模的消息,而不会丢失消息。使用AWS控制台、命令行界面或SDK和几个简单的命令,在几分钟内即可开始使用SQS。SQS提供两种消息队列类型。标准队列提供最高吞吐量、最大努力排序和至少一次传送。SQS FIFO队列旨在确保按照消息的发送顺序对消息进行严格的一次性处理。

· 消除管理开销:AWS负责管理所有正在进行的操作和底层基础设施,以提供高度可用并且可扩展的消息队列服务。SQS无需前期成本,无需购买、安装和配置消息收发软件,无需耗时地构建和维护配套基础设施。SQS队列会以动态方式自动创建和扩展,从而使您可以快速而高效地构建和扩展应用程序。

· 可靠传送消息:使用Amazon SQS可以在任意吞吐量级别传输任何规模的数据,而不会丢失消息,并且无需其他服务即可保持可用。借助SQS,可以分离应用程序组件,以让其独立运行,在发生故障时不影响其他组件,从而提高系统的总体容错能力。每个消息有多个副本以冗余的方式存储在多个可用区中,以确保它们在需要时随时可用。

· 保证敏感数据安全:借助Amazon SQS,可以使用服务器端加密(SSE)功能加密每个消息正文,以在应用程序之间交换敏感数据。Amazon SQS SSE与AWS Key Management Service (KMS)集成,就能够集中管理保护SQS消息的密钥以及保护其他AWS资源的密钥。AWS KMS会将加密密钥的每次使用情况记录到AWS CloudTrail,以帮助满足监管与合规性需求。

· 弹性扩展:Amazon SQS利用AWS云按需进行动态扩展。SQS可以根据应用情况进行弹性扩展,因此,无需担心容量规划和预配置。每个队列的消息数量不限,而且标准队列能提供几乎无限的吞吐量。相对于自行管理的消息收发,中间件采用的“不中断”模式,按使用量付费的模式可以节约大量的成本。

Amazon SQS是Amazon公司提供的线上消息队列服务,可以实现应用程序解耦,以及可靠性保证。SQS提供了两种消息队列,一种是标准消息队列,一种是先进先出队列(FIFO),其区别是FIFO是严格有序的,即消息接收的顺序是按照消息发送的顺序来进行的,而标准队列是尽最大可能有序,即不保证一定为有序,此外FIFO还保证了消息在一定时间内不能重复发出,即使是重复发了,它也不会把消息发送到队列上。