1

我们有多个消费者(目前)订阅了一个具有 10 个分区的主题,并且是一个消费者组的一部分。

由于这些消费者不断地收听消息,我们决定在 .NET Core 3.1 中使用工作服务模板。由于这个想法是每个进程有一个消费者,每个消费者都有自己的专用工作者服务。它们已经在 prod 中运行了几个星期,它们似乎正在按预期消费和处理消息。

这是一种矫枉过正的方法吗?部署一项服务并让它创建 10 个消费者实例并在单独的线程上启动它们会更有效吗?

例如:

public class ConsumerGroupBuilder : BackgroundService
{
    protected override Task ExecuteAsync(CancellationToken stoppingToken)
    {
      for(var i = 0; i < 10; i++)
        Task.Run(() => BuildConsumer(stoppingToken));

      return Task.CompletedTask;
    }

   ...
}

非常感谢您的贡献。

4

0 回答 0