首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何减少AWS SQS的连接延迟?

如何减少AWS SQS的连接延迟?
EN

Stack Overflow用户
提问于 2015-07-22 01:31:48
回答 3查看 3.6K关注 0票数 1

当使用AWS连接到AWS时,似乎出现了明显的延迟。

在启动服务以使用消息时,这并不重要,因为在第一个连接延迟3-7秒之后,消息开始以良好的速度流动-

但是,当发布消息时,这是一个大问题。例如,由于与AWS的连接正在等待发布消息,用户web请求需要几秒钟才能完成。这违背了发送消息的目的,以便将等待时间推迟到后台作业。

这是DNS解决的问题吗?联网?或者是AWS SQS设置?我的web应用程序并不在AWS网络中,也不确定这是否是一个问题。

简单地发布消息代码:

代码语言:javascript
运行
复制
$aws = \Aws\Common\Aws::factory(/* array with connection settings */);
$client = $aws->get('Sqs');
$queue = $client->getQueueUrl(['QueueName' => $queue]);

// This takes 3 - 5 seconds every time its called.
$res = $this->client->sendMessage([
    'QueueUrl' => $queue['QueueUrl'],
    'MessageBody' => json_encode($request)
 ]);
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-07-22 02:07:24

在我们使用期间,SQS显示了非常低的延迟。但是,我们的逻辑运行在EC2实例上。

很可能,服务器和SQS之间存在显著的延迟。要么在靠近服务器的区域使用SQS,要么将应用程序的逻辑移动到EC2或Lambda。

我建议在进行迁移之前编写一个简单的测试应用程序,以排除业务逻辑中的问题。

票数 2
EN

Stack Overflow用户

发布于 2017-05-18 10:17:41

帮助我减少SQS延迟的一个技巧是直接使用队列URL,而不是从API构建它。另外,使用http而不是https将显著降低延迟。对我来说,这几乎是20毫秒的冲击。

当然,您可以在安全性和可移植性之间进行权衡,但如果性能比性能更受关注,可能会有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2020-06-10 15:09:47

通过引入用于SQS服务的VPC,您可以减少延迟问题和任何与连接相关的问题,因为AWS内部使用AWS PrivateLink或简单地说AWS内部网络骨干来建立VPC和SQS中实例之间的连接和数据传输,而不是使用传统的internet。它也很容易设置,而不是一个破坏性的更改,因为它只是将像sqs.eu-central-1.amazonaws.com这样的SQS端点的DNS名称解析为私有IP。如果由于配置更改或其他原因导致私有链接出现问题,AWS将自动解决通常的公共IP (使用internet)。

您可以在这里找到更多详细信息:AWS SQS服务端点

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31552414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档