Внешняя настройка серверов начальной загрузки - PullRequest
0 голосов
/ 06 декабря 2018

Скажем, мы должны использовать confluent-kafka-dotnet , ProducerConfig получает массив адресов брокера Kafka в своем свойстве BootstrapServers.

Мы могли бы поместить эти адреса в web.config, но, предполагая, что мы используем архитектуру микросервисов, если бы мы изменили конфигурацию кластера Kafka (например, добавили новых брокеров), нам пришлось бы обновитьмного файлов web.config.

Мне любопытно, как другие решили эту проблему.

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Вместо чтения из файла конфигурации я бы предложил прочитать из переменной среды, например, BOOTSTRAP_SERVER.

Если вы добавили нового брокера в существующий кластер, то у вас нетбеспокоиться о том, чтобы что-то изменить, если в ваших начальных конфигах есть хотя бы 3 других здоровых брокера - остальные будут загружены Контроллером и возвращены клиенту, отсюда и имя свойства.Вам может понадобиться отослать приложение, чтобы получить новый загрузчик, или вы можете настроить значение metadata.max.age.ms, чтобы ускорить обновление быстрее.

Как уже упоминалось в комментариях, Консул популярен для динамического обнаружения служб, поэтому вам нужно будет всего одна запись для kafka.consul, а через DNS он подберет любую работоспособную службу, зарегистрированную под kafka

0 голосов
/ 06 декабря 2018

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

мы храним в хранилище.

http://127.0.0.1:8200/v1/secret/production/kafka {хост1: 9091, хост2: 9091} http://127.0.0.1:8200/v1/secret/staging/kafka {хост: 9091}

...