Я обновился до MassTransit 5.2.0, и существующий код жалуется, что LoadFrom устарел. - PullRequest
0 голосов
/ 09 января 2019

Предупреждение предлагает прочитать документацию, но текущая документация рекомендует использовать LoadFrom при настройке потребителя, которому требуется поддержка DI. В настоящее время используется .net Core Dependency Injection. Не удается найти потребительский метод, который позволяет использовать DI.

Это продолжает работать. Я просто нервничаю, когда иду вперед.

cfg.ReceiveEndpoint(host, "adjudication-api", e => 
{
   e.PrefetchCount = 16;

   e.UseMessageRetry(x => x.Interval(2, 100));

   e.LoadFrom(provider);

 });

Руководство будет оценено.

1 Ответ

0 голосов
/ 09 января 2019

Хотя использование LoadFrom все еще поддерживается, это не рекомендуется, потому что на самом деле это очень плохая практика, когда вы кладете все яйца в одну корзину. Слишком часто я сталкивался с разработчиками, которые имеют десятки потребителей в одной очереди, причем все они не связаны между собой. Важно распределить потребителей по нескольким очередям, чтобы избежать узких мест, разделить трафик в брокере и улучшить видимость системы.

Вместо использования LoadFrom рассмотрите следующий подход:

cfg.ReceiveEndpoint(host, "adjudication-api", e => 
{
   e.PrefetchCount = 16;

   e.UseMessageRetry(x => x.Interval(2, 100));

   e.Consumer<AdjudicationConsumer>(provider);
 });

Затем, если у вас есть другой потребитель, который обрабатывает возмещение, создайте для него отдельную конечную точку:

cfg.ReceiveEndpoint(host, "reimbursement-api", e => 
{
   e.PrefetchCount = 16;

   e.UseMessageRetry(x => x.Interval(2, 100));

   e.Consumer<ReimbursementConsumer>(provider);
 });

Используя этот подход, потребители распределяются по нескольким очередям (получают конечные точки).

...