将 FIFO 与 AWS Message Processing Framework for .NET 结合使用 - AWS SDK for .NET (V3)

的版本 4 (V4) AWS SDK for .NET 已经发布!

要开始使用新版本的 SDK,请参阅 AWS SDK for .NET (V4)开发人员指南,尤其是关于迁移到版本 4 的主题。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将 FIFO 与 AWS Message Processing Framework for .NET 结合使用

对于消息排序和消息重复数据删除至关重要的使用案例,AWS Message Processing Framework for .NET 支持先进先出(FIFO)Amazon SQS 队列Amazon SNS 主题

发布

向 FIFO 队列或主题发布消息时,您必须设置消息组 ID,该 ID 指定消息所属的组。组内的消息按顺序处理。您可以在特定于 SQS 和 SNS 的消息发布者上进行此设置。

await _sqsPublisher.PublishAsync(message, new SQSOptions { MessageDeduplicationId = <message-deduplication-id>, MessageGroupId = <message-group-id> });

订阅

处理来自 FIFO 队列的消息时,框架会按照每次 ReceiveMessages 调用的接收顺序处理给定消息组中的消息。当配置以 .fifo 结尾的队列时,框架会自动进入此操作模式。

await Host.CreateDefaultBuilder(args) .ConfigureServices(services => { // Register the AWS Message Processing Framework for .NET. services.AddAWSMessageBus(builder => { // Because this is a FIFO queue, the framework automatically handles these messages in order. builder.AddSQSPoller("https://sqs.us-west-2.amazonaws.com/012345678910/MPF.fifo"); builder.AddMessageHandler<OrderMessageHandler, OrderMessage>(); }); }) .Build() .RunAsync();