如何在.Net中与不同类型的使用者一起使用RabbitMq消息?

zz

MessageType:“ PublishX”

消费者:

Type1ConsumerX

Type2ConsumerX

Type3ConsumerX

所有使用者必须立即捕获消息,但必须在自己内部同步消费。

例如,队列中有100条“ PublishX”消息。Type1ConsumerX消耗30个消息(同步),Type2ConsumerX消耗50个消息(同步),Type3ConsumerX消耗100个消息(同步)。我怎么知道“所有类型的消费者”都消费了该消息

  • RabbitMQ / MassTransit PUSH消息可以发送给消费者吗?

  • RabbitMQ / MassTransit是否可以按间隔(1s)推送消息(合并它们)以减少网络流量?

  • RabbitMQ / MassTransit可以将相同的消息发送给不同类型的消费者吗?

拉格泰姆·威利

如果我正确理解了这个问题,则只需要设置一个基本的发布/订阅模式。这将使您可以将相同的消息传递给多个使用者。

示例发布者:

public static void PublishMessageToFanout()
{
    var factory = new ConnectionFactory { HostName = "localhost" };

    using (var connection = factory.CreateConnection())
    using (var channel = connection.CreateModel())
    {
        channel.ExchangeDeclare("messages", "fanout");

        var message = new Message { Text = "This is a message to send" };

        var json = JsonConvert.SerializeObject(message);
        var body = Encoding.UTF8.GetBytes(json);

        channel.BasicPublish("messages", string.Empty, null, body);
    }
}

消费者示例:

SubscribeToMessages("sms-messages", (s) => Console.WriteLine("SMS Message: {0}", s));
SubscribeToMessages("email-messages", (s) => Console.WriteLine("Email Message: {0}", s));

public static void SubscribeToMessages(string queueName, Action<string> messageAction)
{
    var factory = new ConnectionFactory() { HostName = "localhost" };

    using (var connection = factory.CreateConnection())
    using (var channel = connection.CreateModel())
    {
        channel.ExchangeDeclare("messages", "fanout");
        channel.QueueDeclare(queueName, true, false, false, null);
        channel.QueueBind(queueName, "messages", string.Empty);

        var consumer = new QueueingBasicConsumer(channel);

        channel.BasicConsume(queueName, true, consumer);

        while (true)
        {
            var ea = consumer.Queue.Dequeue();

            var body = ea.Body;
            var message = Encoding.UTF8.GetString(body);
            messageAction(message);
        }
    }
}

如果您SubscribeToMessages在单独的进程或控制台应用程序中运行循环,则每次调用时,它们都将打印出消息PublishMessageToFanout您还将在“队列”下的RabbitMQ管理中看到两个队列。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在.Net中与不同类型的使用者一起使用RabbitMq消息?

来自分类Dev

如何在SpringBoot:RabbitMQ中每个队列仅配置一个使用者?

来自分类Dev

Keras:如何将fit_generator与不同类型的多个输出一起使用

来自分类Dev

RabbitMQ-如何为新使用者保存消息

来自分类Dev

JMS事务如何与并发使用者一起工作?

来自分类Dev

如何才能更有效地编写代码,以与不同类型的JavaFX GUI组件一起使用?

来自分类Dev

如何在飞行中将BLOB数据类型与不同的数据库一起使用?

来自分类Dev

在PHP上如何取消RabbitMQ中的使用者?

来自分类Dev

当分区多于使用者时,如何在Kafka中消耗消息?

来自分类Dev

如何在Spring Integration中重新启动消息使用者?

来自分类Dev

我如何让RabbitMQ使用者仅接收一条消息而不会超时并发送agan?

来自分类Dev

如何在Mule中创建独占队列使用者?

来自分类Dev

如何在.NET中将SQLite与NLog一起使用

来自分类Dev

如何在JavaScript中创建两个表并与不同的CSS一起使用?

来自分类Dev

RabbitMQ:如何在Python生产者和使用者之间发送Python字典?

来自分类Dev

RabbitMQ渠道闲置问题| 如何恢复未确认的AMQP消息| Javaclient使用者

来自分类Dev

如何在Laravel中与Eloquent一起使用WhereIn?

来自分类Dev

如何在gulp中与uglify一起使用coffescript?

来自分类Dev

如何在不同类型的项目中使用ViewModel

来自分类Dev

如何在.NET MVC Core 5中将WebMatrix方法与Npgsql一起使用

来自分类Dev

指针如何与Java中的原始类型一起使用?

来自分类Dev

如何在 ASP.NET Core 中向类型化 HTTP 客户端的使用者干净地传播 HTTP 响应

来自分类Dev

如何使用MessageListenerAdapter在Spring amqp中将Pojo与消息类型参数一起使用?

来自分类Dev

如何在js中为两个不同类型的数组列表使用相同的数组?

来自分类Dev

如何使用Pyspark Streaming模块实现RabbitMQ使用者?

来自分类Dev

如何使用Docker运行RabbitMQ使用者-NodeJS

来自分类Dev

套接字系列功能如何与不同类型的结构一起工作?

来自分类Dev

如何使不同类型的输入(文件,文本)一起工作

来自分类Dev

如何在Slim 3和Twig中将Flash消息与重定向一起使用

Related 相关文章

  1. 1

    如何在.Net中与不同类型的使用者一起使用RabbitMq消息?

  2. 2

    如何在SpringBoot:RabbitMQ中每个队列仅配置一个使用者?

  3. 3

    Keras:如何将fit_generator与不同类型的多个输出一起使用

  4. 4

    RabbitMQ-如何为新使用者保存消息

  5. 5

    JMS事务如何与并发使用者一起工作?

  6. 6

    如何才能更有效地编写代码,以与不同类型的JavaFX GUI组件一起使用?

  7. 7

    如何在飞行中将BLOB数据类型与不同的数据库一起使用?

  8. 8

    在PHP上如何取消RabbitMQ中的使用者?

  9. 9

    当分区多于使用者时,如何在Kafka中消耗消息?

  10. 10

    如何在Spring Integration中重新启动消息使用者?

  11. 11

    我如何让RabbitMQ使用者仅接收一条消息而不会超时并发送agan?

  12. 12

    如何在Mule中创建独占队列使用者?

  13. 13

    如何在.NET中将SQLite与NLog一起使用

  14. 14

    如何在JavaScript中创建两个表并与不同的CSS一起使用?

  15. 15

    RabbitMQ:如何在Python生产者和使用者之间发送Python字典?

  16. 16

    RabbitMQ渠道闲置问题| 如何恢复未确认的AMQP消息| Javaclient使用者

  17. 17

    如何在Laravel中与Eloquent一起使用WhereIn?

  18. 18

    如何在gulp中与uglify一起使用coffescript?

  19. 19

    如何在不同类型的项目中使用ViewModel

  20. 20

    如何在.NET MVC Core 5中将WebMatrix方法与Npgsql一起使用

  21. 21

    指针如何与Java中的原始类型一起使用?

  22. 22

    如何在 ASP.NET Core 中向类型化 HTTP 客户端的使用者干净地传播 HTTP 响应

  23. 23

    如何使用MessageListenerAdapter在Spring amqp中将Pojo与消息类型参数一起使用?

  24. 24

    如何在js中为两个不同类型的数组列表使用相同的数组?

  25. 25

    如何使用Pyspark Streaming模块实现RabbitMQ使用者?

  26. 26

    如何使用Docker运行RabbitMQ使用者-NodeJS

  27. 27

    套接字系列功能如何与不同类型的结构一起工作?

  28. 28

    如何使不同类型的输入(文件,文本)一起工作

  29. 29

    如何在Slim 3和Twig中将Flash消息与重定向一起使用

热门标签

归档