AWS Messaging Services:选择合适的服务

1. AWS Messaging Services

AWS Messaging服务使云中相似和不同的软件系统能够异步通信和交换信息。 这些软件系统可能不兼容且使用不同的语言,也可能在不同的平台上。 AWS消息传递服务具有高度可用性,高度可扩展性和高度可靠性。 AWS支持针对不同类型用例的多种消息传递服务。 在本文中,我们将讨论各种AWS消息服务,并根据应用程序需求选择合适的消息服务。

消息服务允许通常不兼容且在不同平台上以不同编程语言开发的不同软件系统进行通信和交换信息。

2. Amazon SQS(简单队列服务)

Amazon SQS是一种分布式队列Web服务,用于在软件系统之间异步交换消息。 SQS用于开发具有分离组件的大规模分布式系统,而无需担心创建和管理队列。 SQS有两种类型,即标准和先进先出。 FIFO队列维护生成和使用的消息的顺序,并提供一次精确的传递机制。 标准队列尝试保留订单,但很灵活,并且至少提供一次交货。 “标准队列”中的消息可以多次传递,“标准队列”提供高吞吐量。

随着请求数量的增长,Amazon SQS会水平扩展。 SQS中的消息是使用服务器端加密进行加密的,并且在队列中的生命周期内都是安全的。

如果您的应用程序需要更快的消息处理速度,但是不关心消息顺序或消息的重复发送,则“标准队列”是最佳选择。 为了确保有保证的订单并且只有一次交货,请使用FIFO队列。 当使用者接收并处理该消息时,该消息将保留在队列中,直到将其显式删除或消息保留时间到期为止。 Amazon SQS设置消息的可见性超时 (默认为30秒,最长为12小时),以防止其他使用者再次处理同一条消息。

在一对一消息传递,发送电子邮件,表单和文件处理的情况下,SQS最为有用。

AWS Messaging Services-SQS集成
SQS整合

2.1 SQS限制

  • 邮件大小限制为256 KB
  • 默认情况下,SQS中的邮件将在4天后删除,但是最多可以延长14天
  • 在标准SQS中,消息可以一次传递

2.2 SQS最佳实践

  • 根据处理消息所需的时间,将消息的可见性超时延长到处理和删除消息所需的最长时间。
  • 如果您不知道从SQS处理消息需要花费多长时间,请为使用者流程创建心跳并相应地延长可见性超时。
  • 长时间轮询有助于降低Amazon SQS成本。 在实施长轮询时,每个队列使用一个线程,而不是所有队列使用一个线程。 对所有队列使用一个线程可能会导致您的应用程序无法处理其他队列中可用的消息。
  • 使用唯一消息ID可以防止使用者处理相同的消息。

3. Amazon SNS(简单通知服务)

Amazon SNS是一个完全托管的发布/订阅异步推送通知系统,消息生产者在其中发布消息,多个订阅者接收消息。 发布/订阅消息传递模型用于使应用程序分离,并提高应用程序的性能,可伸缩性和可靠性。 推送到SNS的消息将在多个可用性区域中保持不变,以防止丢失消息。 SNS向所有订阅者发送带有订阅URL的消息,订阅者需要确认订阅才能接收该消息。

SNS允许将消息发送到多个服务,包括SQS,Lambda,HTTP,电子邮件,SMS等。AmazonSNS可以与SQS结合使用,因此发布到SNS的消息将发送给每个SQS和每个用户SQS将收到该消息。

AWS Messaging Services-SNS订阅者
SNS订户

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连接以及创建消息生产者和使用者。

AWS Messaging Services-Amazon MQ集成
Amazon MQ集成

4.1 Amazon MQ的最佳实践

  • Amazon MQ使用其安全管理的加密密钥对静态消息和传输中的消息进行加密。 强烈建议同时使用客户端加密。
  • 要针对速度慢的使用者优化Amazon MQ,请将parallelStoreAndDispatchQueues属性设置为false
  • 使用正确的代理实例类型以提高吞吐量
  • 在多生产者和多消费者应用程序的情况下,为多个生产者按需创建大量连接可能效率很低。 使用连接池而不是使用PooledConnectionFactory类。 不要在消息使用者上使用PooledConnectionFactory 。

4.2配置连接池(来自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限制

  • 每个AWS账户的每种代理实例类型的代理数量限制为20
  • 限制为每个代理的安全组数为5
  • 每个经纪人的存储容量限制为200GB

5.亚马逊Kinesis

Amazon Kinesis是一种完全托管的Web服务,用于实时处理大数据。 Kinesis有助于收集,处理和分析实时流数据,以深入了解信息。 使用Kinesis,可以在数据到达并立即响应时对其进行分析。 使用Kinesis,可以分析视频,音频,应用程序日志,网站点击流和IoT遥测。 Amazon Kinesis具有高度的可扩展性,可以处理几乎任何数量的流数据并处理来自成千上万个来源的数据,而几乎没有延迟。 Kinesis每小时可以处理来自各种数据流的TB级数据。 Kinesis保持消息的顺序。

AWS Messaging Services-Kinesis集成
运动整合

Amazon Kinesis最适合用于用例,例如收集和分析温度,湿度传感器等传感器数据。它还可以可靠地吸收所有市场数据并建立实时分析。

5.1运动学限制

  • 数据Blob大小限制为1 MB
  • 默认情况下,消息会在24小时后从信息流中删除,但最多可以延长7天

6.亚马逊Pinpoint

Amazon Pinpoint是托管在Amazon Web Services上的完全托管的营销和分析服务。 使用Amazon Pinpoint营销团队可以获取见识以加强活动并确定如何与客户群进行有效沟通。 使用Amazon Pinpoint,营销人员可以定义活动计划,以向应用程序最终用户发送定向消息。

Amazon Pinpoint可以与移动和Web应用程序集成,以深入了解客户如何与您的应用程序进行交互。 它还有助于发送有针对性的电子邮件,SMS,推送通知和语音消息,还可以跟踪客户如何响应您的消息,即已发送,打开或单击的消息数。 这对于发送促销或教育内容以吸引和留住用户很有用。

Amazon Pinpoint有用的一些用例是:

  • 汇总所有营销活动的数据
  • 提供有关您安装了应用程序的设备的信息的人口统计图
  • 有关用户参与度和广告系列指标的分析
  • 有关应用程序使用时间和客户保留的分析
  • 收入图表,提供有关客户购买及其产生的收入的详细信息
  • 用户身份验证分析

7.亚马逊物联网经纪人

AWS IoT消息代理是一项托管的高吞吐量发布者/订阅者代理服务,可用于向AWS IoT收发消息。 客户端将有关主题的消息发送到AWS IoT。 该消息代理将消息发送给该主题的所有注册客户端。 使用AWS IoT,可以以低延迟安全地传输所有IoT设备之间的消息。 根据消息量,可以自动缩放消息代理。 AWS IoT支持一对一消息传递或百万广播通知系统。 AWS文档中列出了更多AWS IoT功能。

翻译自: https://www.javacodegeeks.com/2019/03/aws-messaging-services-choosing-right-service.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/342295.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

变频器的四大组成部分和工作原理

随着电子技的发展变频器已经有了很大的变化,但其基本原理并没有发生改变。变频器的主要部分有四个:整流器、中间电路、逆变器、控制电路。 1)、整流器 通用变频器的整流电路是由三相桥式整流桥组成。它的功能是将工频电源进行整流&#xff0…

工业交换机与普通商用交换机的对比详解

工业交换机是专门为满足灵活多变的工业应用需求而设计的,从可靠性和抗干扰方面考虑,工业级别的交换机和商用的产品相差还是很大得,而且工业交换机有很多实用的功能,安装和电源的使用方面更符合工业现场的要求。工业场合选用该类型…

变频器的工作原理和功能应用

变频器(Variable-frequency Drive,VFD)是应用变频技术与微电子技术,通过改变电机工作电源频率方式来控制交流电动机的电力控制设备。 变频器主要由整流(交流变直流)、滤波、逆变(直流变交流&am…

飞畅科技-工业以太网交换机组网方式介绍

工业以太网交换机专门为满足灵活多变的工业应用需求而设计,提供一种高性价比工业以太网通讯解决方案。工业交换机的应用十分广泛,在行业应用方面,主要应用于:煤矿安全、轨道交通、工厂自动化、水处理系统、城市安防等。接下来&…

蓝牙技术的发展与历程

蓝牙,一种短距离无线通信技术标准,由1998年成立的“蓝牙特别兴趣小组”(Special Interest Group,SIG)命名以整合各大品牌的标准,SIG为蓝牙技术联盟的前身。随着无线技术的发展,物联网应用市场欣欣向荣,蓝牙…

[渝粤教育] 南宁学院 应用文写作 参考 资料

教育 -应用文写作-郭莉-章节资料考试资料-南宁学院【】 单元测试一 1、【单选题】消息标题的常见形式中,最能体现虚实结合特点的是( )。 A、提问式标题 B、 单行标题 C、双行标题 D、 多行标题 参考资料【 】 2、【单选题】消息写作最经典的结…

lambda 函数式编程_Java 8 Lambda表达式的函数式编程– Monads

lambda 函数式编程什么是monad ?: monad是一种设计模式概念,用于大多数功能编程语言(如lisp)或现代世界的Clojure或Scala中。 (实际上,我会从scala复制一些内容。)现在,为…

轻松读懂三极管,原来它是这样工作的

一:三极管的介绍 三极管,也就是半导体三极管,是一种控制电流的半导体器件,其作用就是吧微弱信号放大成幅度值较大的电信号,也用作于无触点开关。通常,三极管具有电流放大的作用,它的结构是在一…

飞畅科技-工业以太网的应用现状及前景展望

由于以太网无可争议的优势,将以太网应用于工业自动化领域正成为人们关注的热点。那么,以太网用于工业领域需要要解决哪些问题,其发展前景怎么样呢?接下来我们就来详细的介绍下工业以太网的应用现状及发展前景。感兴趣的朋友就一起…

Modbus RTU通讯协议详解与实例演示

Modbus通讯协议详解 Modbus RTU通讯协议在数据通讯上采用主从应答的方式进行。只能由主机(PC,HMI等)通过唯一从机地址发起请求,从机(终端设备)根据主机请求进行响应,即半双工通讯。该协议只允许…

Spring Boot –如何跳过缓存thyemeleaf模板,js,css等以每次绕过重启服务器

Spring Boot自动配置为ThyemeLeaf注册的默认模板解析器是基于类路径的,这意味着它从编译的资源/ target / classes / **加载模板和其他静态资源。 要加载对资源(HTML,js,CSS等)的更改,我们可以 每次都重新…

「低功耗蓝牙模块」主从一体 蓝牙嗅探-助力智能门锁

一、BLE蓝牙的具体优势: 1、BLE蓝牙模块的待机时间超长 市面上的蓝牙智能锁基本都是使用干电池供电,而BLE低功耗蓝牙模块在广播、传输、待机和睡眠模式下均拥有超低的功耗,比如E104-2G4U04A模块,最大发射功率仅为2.5mW。 2、可以使…

工业以太网的优点有哪些?

以太网支持的传输介质为粗同轴电缆、细同轴电缆、双绞线、光纤等,其最大优点是简单,经济实用,易为人们所掌握,所以深受广大用户欢迎。那么,工业以太网具有哪些优势呢?接下来我们就跟随飞畅科技的小编一起来…

[渝粤教育] 南阳师范学院 英美文学选读 参考 资料

教育 -英美文学选读-章节资料考试资料-南阳师范学院【】 随堂测试 1、【单选题】 is the oldest surviving poem in the English language, and is generally regarded as the national epic of the English people. A、Ecclesiastical History of the English People B、Beowu…

蓝牙模块的5大应用场景

蓝牙模块,作为集成蓝牙无线技术功能的PCBA板,主要用于短距离无线通讯,已经作为物联网无线传输发展的中坚力量。那么蓝牙模块在实际生活中有哪些应用呢?跟亿佰特小编一起来看看吧 一、智慧医疗 当前的健康医疗设备通常是可穿戴产品…

飞畅科技-工业以太网交换机的差异性

通过之前对工业交换机的认知,我们了解到工业以太网交换机采用存储转换的交换方式,同时提高了以太网通信速度,并且内置智能报警设计监控网络运行状况,使得在恶劣危险的工业环境中保证以太网可靠稳定的运行。那么,工业以…

rs485通信OSI模型网络层

网络层处理发生在RS485总线上的设备之间的实际通信。由于RS485接口主要是一种电气规范,因此对话可以到此结束,但由于它支持多点,因此需要在 OSI 模型中解决它。 没有针对网络层寻址的固定规范,但RS485总线必须由主机正确管理以避…

HackTheBox - Medium - Linux - Jupiter

Jupiter Jupiter 是一台中等难度的 Linux 机器,它有一个使用 PostgreSQL 数据库的 Grafana 实例,该数据库在权限上过度扩展,容易受到 SQL 注入的影响,因此容易受到远程代码执行的影响。一旦站稳脚跟,就会注意到一个名…

[渝粤教育] 四川农业大学 管理学原理 参考 资料

教育 -管理学原理-章节资料考试资料-四川农业大学【】 第一章 小测试 1、【单选题】地区经理、项目主管和事业部经理都可以称为( )。 A、基层管理者 B、非管理者 C、中层管理者 D、非管理雇员 参考资料【 】 2、【单选题】( )可被…

工业以太网交换机的冗余功能及发展历程介绍

由于工业环境对工业控制网络可靠性能的超高要求,工业以太网的冗余功能应运而生。从快速生成树冗余(RSTP)、环网冗余(RapidRing)到主干冗余(Trunking),都有各自不同的优势和特点。报警、串口使用、主干&…