[英]Testing SQS,Lambda integration locally with large number of messages
使用 Java 在 AWS SQS 中模擬大約 100 條消息的最佳方法是什么。 我的目標是在我的隊列中有大約 100 條消息時測試 lambda 和 DLQ 功能,以查看節流和故障是如何工作的。
編寫一個接口,公開獲取消息並正確處理它們所需的方法,並編寫需要使用該接口消費消息的代碼。
interface SqsService {
List<Message> getMessages();
void deleteMessage(Message message);
}
然后使用 AWS 開發工具包創建一個實現。 您將在正常條件下使用它。
class SqsMessageService implements MessageService {
private String queueUrl;
@Override
List<Message> getMessages() {
return sqs.receiveMessage(queueUrl).getMessages();
}
@Override
void deleteMessage(Message message) {
sqs.deleteMessage(queueUrl, message.getReceiptHandle());
}
}
然后編寫另一個不與 AWS 通信而是返回大量消息的實現。
class FakeMessageService implements MessageService {
@Override
List<Message> getMessages() {
final List<Message> messages = new ArrayList<>();
...code to generate 100 messages...
return messages;
}
@Override
void deleteMessage(Message message) {
return;
}
}
通過這種方式,您可以輕松地在實現之間切換,而無需更改大量代碼。 此外,我假設您不想實際發送 100 條或更多 SQS 消息,因為這是一個顯而易見的答案,但您必須(可能)為此付費。 如果您想對應用程序的其他部分以及它與 AWS 的集成方式進行基准測試,則您實際上並不需要它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.