0
在使用MassTransit和RabbitMQ的請求響應模式中,我試圖創建一個請求客戶端。但這樣做時,一些研究在互聯網上我看到了兩種可能性:CreateRequestClient和CreatePublishRequestClient之間的區別
CreateRequestClient和CreatePublishRequestClient
是否有人知道什麼是這兩個和何時使用它們之間的區別?
請參閱下面的方法:
public static class RequestClientExtensions
{
public static IRequestClient<TRequest, TResponse> CreateRequestClient<TRequest, TResponse>(this IBus bus, Uri address, TimeSpan timeout, TimeSpan? ttl = null, Action<SendContext<TRequest>> callback = null) where TRequest : class where TResponse : class
{
return (IRequestClient<TRequest, TResponse>) new MessageRequestClient<TRequest, TResponse>(bus, address, timeout, ttl, callback);
}
public static IRequestClient<TRequest, TResponse> CreatePublishRequestClient<TRequest, TResponse>(this IBus bus, TimeSpan timeout, TimeSpan? ttl = null, Action<SendContext<TRequest>> callback = null) where TRequest : class where TResponse : class
{
return (IRequestClient<TRequest, TResponse>) new PublishRequestClient<TRequest, TResponse>(bus, timeout, ttl, callback);
}
}
謝謝你的這個驚人的答覆。你也知道我必須通過什麼地址嗎?在一些例子中,我看到rabbitmq:// localhost/test/request_service。但是當我嘗試這個時,網址無法識別。這些例子中也從未解釋過。 – Ozkan
更多解釋:我想知道我可以在哪裏配置url的'/ test/request_service'部分。在互聯網上沒有太多有關這方面的文件。 – Ozkan
如果您有兩個服務,並且您從一個到另一個請求,請求客戶端中的地址是應該處理您的請求的服務的地址。這就像'新的Uri(「rabbitmq:// servicebushost/second_service_queue」)' –