Я собираюсь развернуть Python Flask Server с Docker в Kubernetes, используя Gunicorn и Gevent / Eventlet в качестве асинхронных рабочих.Приложение будет:
- Подписаться на около 20 различных тем на Apache Kafka.
- Оценить некоторые модели машинного обучения с этими данными.
- Загрузить результаты в реляционнуюбаза данных.
Каждая тема в Kafka будет получать 1 сообщение в минуту, поэтому приложение должно потреблять около 20 сообщений в минуту от Kafka.Для каждого сообщения обработка и выполнение занимают около 45 секунд.Вопрос в том, как я могу масштабировать это хорошим способом?Я знаю, что могу добавить несколько рабочих в Gunicorn и использовать несколько копий модуля при развертывании в Kubernetes.Но достаточно ли этого?Будет ли рабочая нагрузка автоматически распределена между доступными работниками в разных модулях?Или что я могу сделать для обеспечения масштабируемости?