Конфигурация интервала конечной точки в MassTransitC#

Место общения программистов C#
Ответить
Anonymous
 Конфигурация интервала конечной точки в MassTransit

Сообщение Anonymous »

Я использую Masstransit 8 + amazon sqs/sns, приложение работает в контейнере Windows Docker.
Перечитав документацию по обработке исключений, я решил вместо этого использовать DelayedRedelivery UseMessageRetry для повторной попытки получения сообщений, поскольку он не блокирует потребителя, ожидая интервала попытки, а использует возможности очереди.
Оказывается, что необходимо быть осторожным с настройкой длительный интервал времени, так как это может быть плохой практикой, по крайней мере, для UseMessageRetry.
В моем коде я использую следующее ConsumerDefinition:

Код: Выделить всё

internal class MyConsumerDefinition : ConsumerDefinition
{
protected override void ConfigureConsumer(IReceiveEndpointConfigurator endpointConfigurator, IConsumerConfigurator consumerConfigurator, IRegistrationContext context)
{
endpointConfigurator.UseKillSwitch(options =>
{
options
.SetActivationThreshold(100)
.SetTripThreshold(0.2) // 20%
.SetRestartTimeout(TimeSpan.FromMinutes(5))
.SetExceptionFilter(configurator =>
{
configurator.Handle(typeof(SocketException), typeof(EndpointNotFoundException), typeof(TimeoutException), typeof(FaultException));
});
});

endpointConfigurator.UseDelayedRedelivery(r =>
{
r.Handle(typeof(SocketException), typeof(EndpointNotFoundException), typeof(TimeoutException), typeof(FaultException));

r.Interval(3, TimeSpan.FromMinutes(15));
});
}
}
Затем добавьте его в потребитель:

Код: Выделить всё

bus.AddConsumer(typeof(MyConsumerDefinition));
bus.AddConsumer();
bus.AddConsumer();
Поэтому у меня есть несколько вопросов, чтобы убедиться, что я правильно понимаю:
  • Что рекомендуется /max хороший интервал для параметров RestartTimeout в UseKillSwitch?
  • Для метода UseDelayedRedelivery можно установить интервал в 15 минут или это слишком долго?
  • Если Я применяю ConsumerDefinition только для MyConsumer, затем эти настройки автоматически применяются для других потребителей (OtherConsumer2, OtherConsumer3)?
    Можно ли одновременно использовать KillSwitch и DelayedRedelivery?
Будем очень признательны за любые рекомендации, спасибо.

Подробнее здесь: https://stackoverflow.com/questions/786 ... asstransit
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»