SQS на всем протяжении очень низок с лямбда-функцией - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть очередь SQS, в которой я накопил 100000 сообщений, и я хочу узнать, как быстро я могу вывести очередь из этой очереди, используя функцию лямбды. Чтобы убрать столько сообщений, я могу набрать 17 тыс. Сообщений в минуту, и он вызывает только 600 лямбда-функций.

Так есть ли способ улучшить работу очереди? Допустим, если мы сможем увеличить вызов лямбда-функции на 5k, тогда моя очередь также будет быстрее.

Среднее время, затрачиваемое лямбда-функцией, составляет всего 20 мс, и я также выделил максимальную память для лямбда-функции

Это моя функция lamda, которую я включил после того, как у нас в очереди 100000 сообщений.

package com.amazonaws.lambda.demo;

import org.json.JSONObject;

import com.amazonaws.regions.Regions;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.SQSEvent;
import com.amazonaws.services.lambda.runtime.events.SQSEvent.SQSMessage;
import com.amazonaws.services.sns.AmazonSNSClient;
import com.amazonaws.services.sns.model.PublishRequest;
import com.amazonaws.services.sns.model.PublishResult;
import com.amazonaws.services.sqs.AmazonSQS;
import com.amazonaws.services.sqs.AmazonSQSClientBuilder;
import com.amazonaws.services.sqs.model.SendMessageRequest;

public class LambdaMysql implements RequestHandler<SQSEvent, Void> {

    @Override
    public Void handleRequest(SQSEvent event, Context context) {

        for (SQSMessage msg : event.getRecords()) {
            JSONObject jsonResponseObjectMain = new JSONObject(msg.getBody());
            String ID = jsonResponseObjectMain.get("ID").toString();
            System.out.println("------ID-------" + ID);

            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }


            AmazonSQS sqs = AmazonSQSClientBuilder.standard()
                      .withRegion(Regions.US_EAST_1)
                      .build();

            String bodyofJson = "Record Inserted Into FSP DB";
            String queueUrl="https://sqs.us-east-1.amazonaws.com/***-queue";
            SendMessageRequest send_msg_request = new SendMessageRequest()
                    .withQueueUrl(queueUrl)
                    .withMessageBody(bodyofJson);
            sqs.sendMessage(send_msg_request);

        }

        return null;
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...