在 AWS FIFO 队列中,去重间隔是指在一定时间内防止重复消息的系统设置,通常是 5 分钟左右。如果在去重间隔内发送了重复消息,AWS FIFO 队列会自动过滤掉重复的消息,只保留一条,确保每个消息只被处理一次。
以下是使用 AWS SDK for Python (Boto3) 发送消息到 AWS FIFO 队列并确认去重机制的示例代码:
import boto3
import json
# 创建SQS客户端
sqs = boto3.client('sqs')
# AWS FIFO 队列名称
queue_url = 'https://sqs.us-east-2.amazonaws.com/123456789012/my-queue.fifo'
# 创建消息体
message_body = {
'order_id': '12345',
'customer_name': 'John Smith',
'order_total': 100.00
}
# 将消息转换为 JSON 格式
json_message = json.dumps(message_body)
# 发送消息到队列
response = sqs.send_message(
QueueUrl=queue_url,
MessageBody=json_message,
MessageGroupId='orders'
)
# 打印消息 ID
print('Message ID:', response['MessageId'])
在发送完一条消息后,可以手动在去重间隔内发送一条相同的消息,然后再次运行上述代码来检查去重机制是否生效。如果一切正常,相同的消息将会被自动过滤掉,只有一条消息被保存在队列中。