한 쪽에서 일부 메시지를 보내고 다른 응용 프로그램에서 수신하는 RabbitMq가있는 대기열을 만들고 싶습니다. I'am는 다음 코드를 사용하여 이렇게 :Masstransit ReceiveFrom 메소드 및 소비자 행동에 혼동 됨
return ServiceBusFactory.New(x =>
{
var uriString = string.Format(@"rabbitmq://{0}/{1}/{2}?prefetch={3}", host, virtualHost, queueName,
prefetch < 1 ? 1 : prefetch);
x.UseRabbitMq(r => r.ConfigureHost(new MessageUrn(uriString), h =>
{
h.SetUsername(user);
h.SetPassword(password);
h.SetRequestedHeartbeat(3);
}));
x.ReceiveFrom(uriString);
x.UseJsonSerializer<ServiceBusConfigurator>();
f(x);
});
MessageUrn의 URI와 ReceiveFrom 그렇지 않으면 ReceiveFrom 방법에 대해 지정된 URI, 같은 URI가 버스 종점을 결정해야합니다. 하지만 내 출판사도 같은 대기열을 사용하고 있음을 의미합니다. 수신자가 없으면 모든 메시지가 queuename_error 큐로 이동합니다. 수신기가있을 때 모든 것이 괜찮은 것 같습니다.
내가 뭘 잘못하고있어? 왜 메시지가 오류 대기열로 이동하는지 이해합니다. 게시자는 구독하지 않았지만 동시에 소비자이므로 오류 상황이 발생합니다. 수신자가 (다시) 시작할 때 오류 대기열에서 메시지를 복구 할 수 있습니까?
masstransit은 2.10.0.0입니다.
미리 감사드립니다.
masstransit을 <3.0.0 버전으로 업그레이드하는 것이 좋습니다. API가 개선되었습니다. masstransit v3 이상에 대한 문서는 다음과 같습니다. http://masstransit-project.com/MassTransit/ –
이후 버전은 사용할 수 없습니다. – Sharov