本来我有一个单一的RabbitMQ节点的工作就好了请求/响应客户端的交互。MassTransit请求和响应在集群
我现在改变为一个集群,并试图运行同样的请求/响应操作。它壮观地爆炸。
我设置2台主机作为RabbitMQ的集群的一部分。 我有这么多麻烦,我回到使用masstransit sample code。
这似乎也有麻烦。我最终得到我的请求服务的重复异常:
--- End of stack trace from previous location where exception was thrown --
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(...)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNot
ification(...)
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwai
ter.GetResult()
at MassTransit.Pipeline.Filters.RescueReceiveContextFilter`1.<MassTransit-Pip
eline-IFilter<MassTransit-ReceiveContext>-Send>d__5.MoveNext()
Returning name for 45
Rescuing exception
MassTransit.EndpointNotFoundException: The endpoint address specified an unknown
host: rabbitmq://erinome:5672/bus-ERINOME-Client.vshost-1pooyygnzw6bmox5bdjwjoy
mnw?durable=false&autodelete=true&prefetch=4
at MassTransit.RabbitMqTransport.RabbitMqSendTransportProvider.GetSendTranspo
rt(Uri address)
at MassTransit.RabbitMqTransport.RabbitMqSendEndpointProvider.<GetSendEndpoin
t>d__5.MoveNext()
我在最简单的配置,我可以去观察问题,从运行在同一台主机客户端和请求服务。
客户端的一些示例配置:
key="RabbitMQHost" value="rabbitmq://erinome"
key="ServiceAddress" value="rabbitmq://erinome/request_service"
和请求服务的配置:
key="RabbitMQHost" value="rabbitmq://localhost"
key="ServiceQueueName" value="request_service"
我的问题可能与集群缺乏知识和端点未发现异常点一些消息路由问题。任何帮助赞赏。
所以服务使用本地RabbitMQ服务器(localhost)?好像你需要确保在这种情况下_erinome_主机名解析为相同的本地主机。 –
如果我更改所有内容以使用本地主机,那么即使它们连接到群集的不同主机,它也是很好的,客户端和服务器之间的通信很好。 – bchap
如果我更改为使用主机名而不是localhost,那么我会遇到通信问题。所有主机名都可以在主机文件中解析。 上下文看起来有一个包含“本地主机”的响应地址,即使它应该发送到远程主机。响应于主机甘薯从主机木卫二十五的请求的 登录 DEBUG [17](空) - SEND:RabbitMQ的:// **本地主机**:5672 /总线木卫二十五程序-1pooyygnzw6bmco7bdjwp4rcf7耐用=假自动删除=真正 – bchap