У меня есть старый алгоритм, который выполняет два шага, скажем, A и B. A имеет дело с подключением к внешней службе и извлечением точек данных. A необходимо выполнить n раз, и все собранные таким образом данные передаются как входные данные для B. Чтобы помочь масштабировать часть A, она была реализована с использованием многопоточности, где порождается 10 потоков, и каждый соединяется с n / 10 конечными точками. Как только все потоки завершают выполнение, полный набор данных предоставляется в качестве входных данных для B.
Мы планируем создать образ Docker этого алгоритма. Пока мы делаем это, я хотел бы изучить, можем ли мы покончить с многопоточностью и вместо этого развернуть несколько контейнеров. Это дает нам лучшую масштабируемость, поскольку n является переменной, а иногда очень маленькой или очень большой.
Я мог бы использовать Kubernetes для организации этих контейнеров. Однако я вижу две проблемы: 1. Как собрать все точки данных в моем основном алгоритме? 2. Как я узнаю, что все контейнеры завершили обработку и что я могу перейти к шагу B?
Любые указатели или помощь приветствуются.