aws ec2 选择可用区_AWS Messaging Services:选择合适的服务

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最有用。

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

aws ec2 选择可用区

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

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

相关文章

qq消息连发代码_我们用的QQ是怎样实现通讯的

聊天工具便利了我们的生活,我们经常使用的QQ怎样实现通讯的呢?首先我们需要知道网络里的两种协议,两种通讯协议分别为UDP和TCP通常网络之间的通讯都是由这两个协议支持的,这两种协议属于传输层,它可以传输文件。UDP&am…

产品经理十大悲催错误

文章目录错误1: 将用户需求混淆为产品需求错误2: 将老板的需求混淆为产品需求错误3:将发明(invention)混淆为创造(innovation)错误4: 以自己的需求取代用户的需求错误5: …

cognito_将Spring Boot应用程序与Amazon Cognito集成

cognito在本文中,我们将展示如何使用Spring Security 5.0中引入的OAuth 2.0客户端库 ,在Spring Boot应用程序中为身份验证用户使用Amazon Cognito服务。 什么是AWS Cognito? Amazon Cognito是由AWS提供的服务,除了提供支持访问AW…

how to build a paper's architecture?

【0】README 0.1) these contents below are from PhD Hongjun Wang on ML class in #9133. best regards! 0.2) these contents below are just for reference. 【1】related to build a paper’s architecture 1.1) problem? what’s…

python之路 mysql 博客园_Python之路(二十七):Mysql(下)

本结目录数据库操作数据表操作外键约束多表查询索引事务python连接Mysql数据库操作此操作针对windows环境下该操作再Mysql服务器启动以及客户端连接之后对数据库操作之前,引申一些较为听的懂的白话1、显示数据库show databases; --后面记得跟英文字符的分号show cre…

APP视觉稿该怎么切图和标注

本篇教程跟大家分享UI设计的一些知识,就是APP怎么切图和标注,还不懂的同学,赶紧了解一下。 首先:哪些东西要切出来? 简单来说就是代码不好实现的东西就直接切成一张图放到软件里面展示,例如图片&#xff…

skynet.fork_Apache Ant 1.10.6发布–用于junitlauncher的fork模式以及新的jmod和链接任务

skynet.forkApache Ant 1.10.6已于本周发布。 此版本包含许多错误修复以及一些非常令人兴奋的新功能。 完整的发行说明可在此处获得 ,下载本身也可以在此处获得 。 在本文中,我将介绍该版本中引入的一些新功能。 使用junitlauncher任务在派生的JVM中运行…

使用MRUnit,Mockito和PowerMock进行Hadoop MapReduce作业的单元测试

0、preliminary 环境搭建 Setup development environment Download the latest version of MRUnit jar from Apache website: https://repository.apache.org/content/repositories/releases/org/apache/mrunit/mrunit/. For example if you are using the Hadoop version 1.…

python奇偶求和_python 判断奇偶并求和,运行过程有错误,希望高手给指导一下。...

问题是:b) Add to the condition in the while loop so that it will stop if either the user inputs a zero or the sum is larger than limit (if limit is None then ignore the second stopping condition). Do not use a break statement to implement this f…

产品经理如何进行需求管理?

文章目录交付需求第一步:提交需求1、流程图2、结构图3、原型图4、产品需求文档第二步:需求评审制定需求实施计划1、和研发确定开发计划2、和设计人员确定UI设计计划3、和运营人员确定运营计划管控需求变更1、分析需求2、分析变更的可行性3、 变更需求需求…

sap wad_使用网真和WAD热部署Kubernetes

sap wad在Kubernetes环境中测试企业应用程序时,更改,重新打包和重新部署应用程序的周转率可能会很高。 网真旨在通过将本地运行的进程代理到我们的Kubernetes集群中来缓解这种情况,就像本地进程是集群的一部分一样。 如果我们将这种方法与诸如…

关于产品的核心问题

文章目录交互设计产品方向产品定位产品使命产品愿景产品逻辑用户价值用户体验产品价值什么样的产品才是合格的?什么样的产品才是优秀的?产品经理关注的核心点做产品前产品经理必须明确三个问题交互设计 定义和设计系统的行为就是交互设计,说…

正则表达式总结之查找

【0】、写在前面 以下内容总结于shell脚本学习指南 【1】我们说查找文本要用到三种文本匹配程序 : 1.1)grep 使用的是基本正则表达式(basic regular expression,BRE) 1.2)扩展式grep 使用 egrep&#xf…

java hipster!_通过Java Hipster升级Spring Security OAuth和JUnit测试

java hipster!“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证。 使用单元测试和集成测试来验证代码质量是一种很好的方式来表明您对代码…

在 Mac 上显示或隐藏文件扩展名

文章目录对于一个文件对于所有文件通过命令来设置更改扩展名显示警告对于一个文件 在 Mac 上,选择文件,然后选取“文件”>“显示简介”,或按下 Command-I。 点按“名称与扩展名”旁边的三角形来展开下面的部分。 若要显示或隐藏文件扩展…

dism++封装系统使用教程_客栈管理系统“订单来了”客房订单盒子使用教程

原标题:客栈管理系统“订单来了”客房订单盒子使用教程「订单来了」是非标住宿行业领先的移动互联云PMS,是以PMS为基础,聚合全渠道的营销管理生态平台,为客栈/民宿提供信息化一体解决方案。已累计服务国内外400城市、30000商家&am…

文本替换sed+字段处理cut,join+awk重新编排字段

【1】sed工具(Stream Editor)——流编辑器 sed 本身也是一个管线(管道)命令,可以分析 standard input 的啦! 而且 sed 还可以将数据进行取代、删除、新增、截取特定行等等的功能呢!…

netsuite 数据集成_Java中带有NetSuite数据实体的对象关系映射(ORM)

netsuite 数据集成对象关系映射(ORM)技术使使用关系数据源更加容易,并且可以将逻辑业务模型与物理存储模型联系在一起。 遵循本教程,将NetSuite数据的连接集成到基于Java的ORM框架Hibernate中。 您可以使用Hibernate将面向对象的…

python内置装饰器property_python之内置装饰器(property/staticmethod/classmethod)

python内置了property、staticmethod、classmethod三个装饰器,有时候我们也会用到,这里简单说明下1、property作用:顾名思义把函数装饰成属性一般我们调用类方法成员,都是如下写法:class propertyTest():def __init__(…

关于bochs用X11启动的说明

关于网络上有很多关于 bochs启动时 连接到X Windows 报错: cannot connect to X display . 昨天搞了半天晚上 今天早上 直到现在 才搞懂。 主要的原因 是我使用了终端 比如 xshell or putty 去连接 centos ,而以这种方式的连接 是只能够 传递字符&a…