【问题标题】:MassTransit Request Response sampleMassTransit 请求响应示例
【发布时间】:2018-06-05 10:54:50
【问题描述】:

我正在学习 MassTransit,所以我下载了他们拥有的 sample,但它似乎对我不起作用,当我尝试启动服务时出现以下错误:

An exception occurred
MassTransit.RabbitMqTransport.RabbitMqConnectionException: Connect failed: igor@localhost:5672/test ---> RabbitMQ.Client.Exceptions.BrokerUnreachableException: None of the specified endpoints were reachable ---> RabbitMQ.Client.Exceptions.OperationInterruptedException: The AMQP operation was interrupted: AMQP close-reason, initiated by Peer, code=530, text="NOT_ALLOWED - vhost test not found", classId=10, methodId=40, cause=
   at RabbitMQ.Client.Impl.SimpleBlockingRpcContinuation.GetReply(TimeSpan timeout)

当我尝试使用其他使用旧版本 MassTransit 的示例时,它们运行良好。

【问题讨论】:

  • 这是我的代码,它使用没有虚拟主机的 vanilla RMQ github.com/alexeyzimarev/MTSamples.RequestResponsePerf/blob/…
  • 感谢您的回复 Alexey。正如我所说,我现在正在学习这一点,所以我不完全确定虚拟主机在这种情况下意味着什么。另外,由于这是公共交通提供的示例,我希望代码能够正常工作(如果需要为我创建虚拟主机?)

标签: rabbitmq masstransit


【解决方案1】:

该示例使用 RMQ URI,其中包括 test 虚拟主机。由于您尚未创建它,因此您的代码会失败,它实际上会告诉您这一点 - 找不到虚拟主机 test。

这是该示例中的app.config:

<appSettings>
    <add key="RabbitMQHost" value="rabbitmq://localhost/test"/>
    <add key="ServiceQueueName" value="request_service"/>
</appSettings>

因此客户端uses the same URI,所以他们都将无法启动。

【讨论】:

  • 感谢您的回复 Alexey,这确实解释了问题所在,但由于我刚刚了解 MassTransit,我不知道如何创建虚拟主机。我进行了搜索,但找不到答案:stackoverflow.com/questions/27092932/…
  • 好的,我知道了如何使用 RabbitMq 管理来做到这一点,但是这不能从代码中实现吗?
  • 虚拟主机是基础设施。您应该使用 RMQ CLI 或管理 UI 来创建它们,而不是 MT 代码。
  • 我提交了一个 PR 以将这些期望添加到 README 文件中的要求中。
猜你喜欢
  • 2012-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-21
相关资源
最近更新 更多