Я работаю над созданием распределенной системы, в которой мне нужно обновить sh конкретную конфигурацию для всех модулей двух служб, службы-A и службы-B. Эта конфигурация обрабатывается другой службой - C. Пользователь может отправить запрос api на service- C, который необходимо распространить на все модули service-A и service-B.
- Служба A и служба B работают на grp c и не доступны миру.
- Эти службы могут работать на разных узлах (поэтому у нас не может быть совместно используемой файловой системы).
- Конфигурация в среднем будет составлять около 100 КБ и таких конфигураций будет около 100К.
Возможные идеи:
Я могу создать шину сообщений, используя kafka и pu sh эти конфигурации на этом bus, который затем прослушивается разными модулями. Проблема с этим подходом заключается в том, что служба A и служба B будут иметь 100 запущенных модулей, поэтому будет примерно 100 групп потребителей, а также, если появится новый модуль, он должен будет использовать очередь с самого начала, что займет много времени.
Использование легкого временного хранилища значений ключа, такого как consul или etcd, поэтому Service- C передаст sh данные в consul, которые затем могут быть прочитаны Service-A и Сервис-Б. Проблема с этим подходом в том, что большое количество модулей, слушающих consul, могут вызывать задержку.
Может ли кто-нибудь помочь мне с некоторыми идеями, как я могу достичь этого на кубернетах изначально?
Спасибо.