Как реализовать масштабируемый потребительский сервис с Python и Celery? - PullRequest
0 голосов
/ 27 сентября 2019

Мне нужно написать сервис (например, S1), который получает данные от другого сервиса (например, S2).S1 постоянно отправляет сообщения S2, который обрабатывает их и сохраняет определенную информацию в какой-либо БД или файлах.Когда S1 отправляет сообщения, нет ожидания ответа от S2.Таким образом, если есть какая-то проблема с S2, данные будут потеряны, и это необходимо обработать или, по крайней мере, контролировать.Сообщения, отправленные S1, могут сильно увеличиться, поэтому S2 должен быть масштабируемым.Думая, что было бы лучшим способом реализовать это с Python, я планирую:

  • Чтобы использовать Celery (с Redis) и иметь задачу получения (которая прослушивает и добавляет сообщения в очередь) и другие задачи, которые получают сообщения из этой очереди и что-то с ними делают.

  • Для реализации S2 с использованием UDP или конечной точки веб-приложения для получения сообщений (например, конечной точки Flask, вызываемой S1 для отправки сообщений), которые (асинхронно) вызывают задачу celery для постановки в очередь сообщений.

Может ли это быть хорошим планом решения?

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