In einem Request Response-Muster mit MassTransit mit RabbitMQ versuche ich einen Request-Client zu erstellen. Aber wenn im Internet einige der Forschung sah ich zwei Möglichkeiten:Unterschied zwischen CreateRequestClient und CreatePublishRequestClient
CreateRequestClient und CreatePublishRequestClient
Kennt jemand was ist der Unterschied zwischen den beiden, und wenn sie zu benutzen?
siehe unten für die Methoden:
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);
}
}
Vielen Dank für diese erstaunliche Antwort. Weißt du auch, was ich als Adresse weitergeben muss? In einigen Beispielen sehe ich rabbitmq: // localhost/test/request_service. Aber wenn ich das versuche, wird die URL nicht erkannt. Es wird auch nie in den Beispielen erklärt. – Ozkan
Noch eine Erklärung: Ich möchte wissen, wo ich den '/ test/request_service' Teil der URL konfigurieren kann. Es gibt nicht viel Dokumentation darüber im Internet. – Ozkan
Wenn Sie zwei Dienste haben und von einem zum anderen fragen, ist die Adresse im Anfrage-Client die Adresse des Dienstes, der Ihre Anfrage bearbeiten soll. Es ist wie 'new Uri (" rabbitmq: // servicebushost/second_service_queue ")' –