Архитектура для запуска группы модулей с различными конфигурациями для взаимодействия с kafka - PullRequest
0 голосов
/ 01 марта 2019

Я ищу несколько советов о том, как структурировать мое приложение на основе kubernetes.У меня есть несколько производителей данных, которые читают данные из файлов и помещают их в тему kafka с несколькими сотнями разделов, основываясь на логическом разделении данных.Затем у меня есть потребители, которые читают данные из этих разделов кафки.Один производитель может писать в несколько разделов, но один потребитель будет читать только из одного раздела.Как только файл обработан, производитель должен завершить, но потребитель должен жить вечно, слушая новые данные в своем разделе.Я создал отдельные модули для производителей и потребителей, но мне интересно, как теперь лучше всего организовать мое развертывание, чтобы я мог развернуть эти модули в массовом порядке.Файлы, которые проглатывают производители, и разделы, которым назначены потребители, в настоящее время передаются в качестве аргументов.

Так что я хочу иметь возможность предоставить список файлов, и kubernetes создаст (и заново создаст, если они потерпят крах) достаточно производителей, чтобы обработать эти файлы.Я также хочу иметь возможность указать набор разделов и сделать так, чтобы kubernetes создавал модуль для каждого раздела.Я вижу много случаев использования документации, когда все модули в Сервисе идентичны и взаимозаменяемы, но не много разговоров об услугах, где каждый модуль имеет разную конфигурацию и, возможно, роль.Заранее спасибо.

1 Ответ

0 голосов
/ 08 марта 2019

Дизайн, упомянутый в вопросе, не вписывается в архитектуру Kubernetes с моей точки зрения.В соответствии с вашим вопросом, в конечном итоге у вас будут сотни различных модулей, которыми сложно управлять и которые нельзя уменьшить.

Я считаю, что это должно работать намного лучше с AWS lambda или другим безсерверным подходом.Дизайн решения может быть проблемным , но результат обойдется вам дешевле и будет более предсказуемым и управляемым.

В качестве альтернативы вы можете использовать Jobs или CronJobs для регулярного использования данных из сервиса Kafka.

...