【问题标题】:C# RabbitMQ Design ApproachC# RabbitMQ 设计方法
【发布时间】:2018-12-29 12:08:01
【问题描述】:

我刚刚开始使用 RabbitMQ,因为在我正在开发的一个网站上,我们想要解耦一些资源密集型任务,例如发送电子邮件、生成 PDF 等。

我从 RabbitMQ 网站 (https://www.rabbitmq.com/tutorials/tutorial-one-dotnet.html) 上非常简单的 C#“Hello world”教程开始。这有助于非常简要地了解 RabbitMQ 是如何连接在一起的,但它给我留下了许多问题,令人惊讶的是,我无法在网上找到答案......

  1. “Hello world”示例发送一个基本字符串。在我发送电子邮件的示例中,我的发布者是否会发送发送电子邮件所需的所有数据,即收件人、主题等,可能是 JSON 格式?
  2. 您通常如何构建消费者来执行 DoSomething 的方法?理想情况下,我希望它流利,以便如果消息属于特定类型,消费者执行方法 SendEmail(),或者如果消息属于不同类型,则执行方法 GeneratePDF() 等等......
  3. 我有一个发布者和一个消费者,但是我希望消费者处理许多不同的任务,例如发送电子邮件或生成 PDFS。我应该有多个消费者,即每种类型的任务一个,还是多个队列(每个任务又一个)?

这些是我目前遇到的一些基本问题,这些问题使我无法了解 RabbitMQ 如何在实际场景中使用。任何帮助将不胜感激。

【问题讨论】:

    标签: c# rabbitmq msmq


    【解决方案1】:

    使用消息传递时,通常您会以与定义基于 http 的 API 相同的方式发送小型数据包(如简单的 JSON 对象)。函数定义和输入/输出规范可以是相同的——将消息视为不同的传输机制。

    对于问题 2-3,是的,您希望设置具有多种消费者类型的多个队列。每种消费者类型都将订阅一个队列,该队列的消息仅用于该消费者。在发布者上使用路由逻辑来确定消息最终进入哪个队列。

    【讨论】:

      猜你喜欢
      • 2015-11-06
      • 1970-01-01
      • 2021-09-03
      • 2011-05-17
      • 2012-09-23
      • 2011-01-28
      • 2011-02-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多