RabbitMQ 单消费者如何订阅多个流? (C#)

问题描述 投票:0回答:1

是否可以在 RabbitMQ 中通过单个消费者订阅接收来自多个流的消息?

我有以下代码来订阅单个流,并且可以正常工作。是否可以使用类似的代码来订阅单个消费者的多个流,或者是否需要多个消费者?

using RabbitMQ.Stream.Client;
using RabbitMQ.Stream.Client.Reliable; 

var streamSystem = await StreamSystem.Create(
    new StreamSystemConfig()
    {
        UserName = "guest",
        Password = "guest",
        Endpoints = new List<EndPoint>
        {
            new IPEndPoint(IPAddress.Parse("127.0.0.1"), 5552)
        }
    }
).ConfigureAwait(false);

var confirmationTaskCompletionSource = new TaskCompletionSource<int>();
var consumer = await Consumer.Create( // (1)
    new ConsumerConfig( // (2)
        streamSystem,
        "my-stream")
    {
        OffsetSpec = new OffsetTypeFirst(), // (3)
        MessageHandler = async (stream, consumer, context, message) => // (4)
        {
            Console.WriteLine($"Received message.");
            await Task.CompletedTask.ConfigureAwait(false);
        }
    }
).ConfigureAwait(false);
c# .net rabbitmq consumer rabbitmq-stream
1个回答
0
投票

订阅是针对单个流的。所以,默认情况下,你不能有更多的流。

我建议看一下超级流功能。 https://rabbitmq.github.io/rabbitmq-stream-dotnet-client/stable/htmlsingle/index.html#super-streams

这是一个如何使用它的例子: https://github.com/rabbitmq/rabbitmq-stream-dotnet-client/tree/main/docs/SuperStream

© www.soinside.com 2019 - 2024. All rights reserved.