本來我有一個單一的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