.Net Core размещенные сервисы в среде с балансировкой нагрузки - PullRequest
0 голосов
/ 10 октября 2019

Мы разрабатываем веб-API с использованием .Net Core. Для выполнения фоновых задач мы использовали размещенные сервисы.

Система размещена в среде AWS Beantalk с балансировщиком нагрузки. Таким образом, на основе нагрузки Beanstalk создает / удаляет новые экземпляры системы.

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

Одним из способов решения этой проблемы является прекращение выполнения фоновых служб в среде с балансировкой нагрузки и выделение среды единственного экземпляра без балансировки нагрузки только для фоновых служб.

Это немного уродливое решение. Итак,

1) Есть ли лучшее решение для этого?

2) Есть ли способ идентифицировать основной экземпляр в среде с балансировкой нагрузки? Если это так, я могу условно зарегистрировать размещенные службы.

Любая помощь действительно приветствуется.

Спасибо

...