- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用程序使用 SendMessageBatchRequest 向 AWS-SQS 发送 10 条消息。每条消息的大小小于 250 字节。该应用程序预计每天发布大约一百万条记录。但是消息发布的速度非常慢,无法实现这一点。
AmazonSQS sqs = null;
sqs = new AmazonSQSClient(new BasicAWSCredentials("accessKey", "SecretKey"));
//the below entries are added via a for loop picking the messages from a queue
//the typical queue size will be 20k messages
//AmazonSQSClient is created once and is used until the code comes out of the for loop
List<SendMessageBatchRequestEntry> entries = new ArrayList<SendMessageBatchRequestEntry>();
entries.add(new SendMessageBatchRequestEntry(messageBatchRequestId, "250kbJSONString"));
//Once the batch count reaches 10,the following code is called
CreateQueueRequest createQueueRequest = new CreateQueueRequest("CLIENT-TEST");
String myQueueUrl = sqs.createQueue(createQueueRequest).getQueueUrl();
SendMessageBatchRequest sendMessageBatchRequest = new SendMessageBatchRequest(myQueueUrl);
sendMessageBatchRequest.setEntries(entries);
long timeBeforePost = System.currentTimeMillis();
SendMessageBatchResult smbResult = sqs.sendMessageBatch(sendMessageBatchRequest);
long afterPost = System.currentTimeMillis();
log.trace("time taken %s ",(afterPost-timeBeforePost));
捕获每个帖子所花费的时间,这是典型的输出
time taken 57
time taken 37
time taken 31
time taken 322
time taken 48
time taken 153
time taken 278
time taken 86
time taken 35
time taken 28
time taken 30
time taken 57
time taken 43
time taken 314
time taken 5587
time taken 42
time taken 4789
time taken 4831
time taken 66
time taken 6239
time taken 50
time taken 38
time taken 4833
time taken 40
time taken 4896
time taken 27
time taken 16634
有些帖子需要 7,16 秒才能返回,这是否正常?我有一些帖子需要 300 秒才能从方法调用返回。我在这里遗漏了什么吗,我的应用程序目前是单线程的,我是计划使其成为多线程以并行处理消息,但有些消息需要几秒钟,有些需要数十/数百秒,这是严重错误的。请帮忙。
非常感谢
最佳答案
我的第一个猜测是您的本地计算机和 SQS 之间存在延迟问题,SQS 处理传入消息的速度肯定比您看到的数字快得多。
也许最好的办法是启动一个 EC2 实例几个小时,使其大小与您的本地计算机相似,然后进行相同的测试以查看问题是否消失。
关于java - AWS SQS Batch SendMessageBatchRequest 非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25092000/
我在 lambda 中有以下代码: entries = [ { "Id": str(index), "MessageAttribut
我正在构建一个无服务器应用程序,它在资源中定义了一个 SQS 队列,如下所示: resources: Resources: TheQueue: Type: "AWS:SQS:Q
我正在使用无服务器框架来使用来自 SQS 的消息。一些发送到队列的消息不会被消费。他们直接进入飞行中的 SQS 状态,然后从那里进入我的死信队列。当我查看我的消费者日志时,我可以看到它消费并成功处理了
我们的亚马逊 SQS 队列没有收到来自亚马逊 MWS 的 AnyOfferChanged 通知消息。 我们发送一个测试通知,当我们收到通知时,它会被发送到队列并可用。 我们已经设置了两个 AWS 账户
我想知道最后一条消息何时发布到 SQS 队列。 查看队列属性(通过 CLI 或其他方式),我看不到任何合适的内容 - 只能看到队列属性最后一次修改的时间。 如果有什么技巧可以找到这个(在不了解客户的情
我正在使用无服务器框架来使用来自 SQS 的消息。一些发送到队列的消息不会被消费。他们直接进入飞行中的 SQS 状态,然后从那里进入我的死信队列。当我查看我的消费者日志时,我可以看到它消费并成功处理了
我们的亚马逊 SQS 队列没有收到来自亚马逊 MWS 的 AnyOfferChanged 通知消息。 我们发送一个测试通知,当我们收到通知时,它会被发送到队列并可用。 我们已经设置了两个 AWS 账户
我正在使用 Amazon SQS 队列向外部系统发送通知。 如果使用 SQS 时 HTTP 请求失败 SendMessage ,我不知道消息是否已排队。我的默认策略是重试将消息发布到队列,但存在两次发
来自 SNS FAQ ,我知道 SNS 到 SQS 有重试策略,但是他们是否保证至少向 SQS 传递一条消息? 请给官方报价。 最佳答案 见 https://aws.amazon.com/sqs/fa
我是否可以使用 Amazon PHP SDK 根据消息 ID 从 SQS 队列中获取消息?我是否必须获取队列中的所有消息,然后在我的服务器上对其进行过滤? 我的服务器收到一个带有队列消息 ID 的 S
我意外删除了 Amazon SQS 中的队列。有没有办法检索/撤消删除? 最佳答案 不,队列(以及队列上的任何消息)将永远消失。 如果您使用相同名称重新创建队列,它将保留相同的 ARN 和 URL。希
我的大多数 Celery 任务的 ETA 都长于 Amazon SQS 定义的最大可见性超时。 celery documentation说: This causes problems with ETA
我正在实现 SQS fifo 队列。我必须使用 cloudformation 模板来实现。 当我放大推送时,我得到 错误API:sqs:CreateQueue 对资源 https://sqs.us-e
我有一个代码,我需要将消息发送到现有的 sqs 队列。 我在 aws-cdk 中有这段代码。但这是行不通的。没有添加访问权限。 const sqsQ = sqs.Queue.fromQueueArn(
我很想了解 GCP 的 PubSub 的实现。尽管 Pubsub 似乎指向遵循发布-订阅设计模式,但它似乎比 AWS SNS(使用发布-订阅模型)更接近 AWS 的 SQS(队列)。为什么认为这是,G
序言:我正在尝试为我认为是一个非常常见的用例提出一个建议,我想使用 Amazon 的 SWF 和 SQS 来实现我的目标。可能还有其他服务可以更好地匹配我正在尝试做的事情,因此,如果您有任何建议,请随
AWS SQS 是否可以通过某种方式调用我的 REST API?基本上,一旦消息被推送到 AWS SQS,我就想听到它并执行所需的操作。我可以安排一个每秒可以提取消息的监听器,但这不是一个优化解决方案
我已配置 SQS 监听器来使用消息列表中的消息,但一次只收到一条消息,并收到错误,因为无法将 model.StudentData 转换为 java.util.ArrayList 的实例 我的代码是:-
使用 Amazon Simple Queue Service 发送消息需要多长时间? 另外,我想知道在 Amazon SQS 中一分钟内会发送多少条消息? 最佳答案 截至 2007 年,at leas
我正在使用 Amazon-SQS,我尝试从队列中检索大约数量的属性,但响应为空 我正在使用 C# 以下是代码: GetQueueAttributesRequest attReq = new GetQu
我是一名优秀的程序员,十分优秀!