Очередь внутри микросервиса - PullRequest
1 голос
/ 12 июня 2019

Давайте представим, что мы хотим чистить овец в стаде таким образом, чтобы каждую овцу можно было чистить по одному за раз - другие задачи по очистке для этой овцы должны быть поставлены в очередь.У нас также есть кучка пастухов, которые могут чистить несколько овец одновременно.Количество овец очень большое и переменное (они умирают и рождаются ....).Запросы на чистку овец случайны и делаются довольно часто.

При таком подходе пастух является экземпляром микросервиса.

Для какой архитектуры следует использовать:

  • убедитесь, что овец убирают только один раз в одно и то же время
  • один пастух может чистить несколько овец одновременно
  • одна и та же овца не чистится несколькими пастухами одновременно
  • Овца автоматически очищается снова и снова, если для одной и той же овцы было отправлено несколько чистых задач

Решения:

  1. В очереди памяти каждого пастуха -не работает - несколько пастухов могут чистить одну и ту же овцу
  2. Внешняя очередь, такая как RabbitMQ, - вынудит меня создать отдельную очередь для каждой овцы - с переменным числом овец будет невозможно содержать

Есть еще идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...