外部化引导服务器配置

时间:2018-12-05 21:46:58

标签: .net apache-kafka confluent-kafka

假设我们要使用confluent-kafka-dotnet,ProducerConfig在其BootstrapServers属性中采用了一系列Kafka代理地址。

我们可以将这些地址放在web.config中,但是假设我们使用的是微服务架构,如果我们要更改Kafka集群配置(例如添加新的代理),则必须更新很多Web .config文件。

我很好奇其他人如何解决了这个问题。

2 个答案:

答案 0 :(得分:1)

您可以在任何与商店相关的环境中存储kafka详细信息。 您需要做的就是针对特定环境更改此存储详细信息,如果您在启动时启动生产者,则重新启动服务器,否则可以跳过此步骤。

我们要存储在Vault中。

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 }

答案 1 :(得分:1)

例如,建议不要从类似BOOTSTRAP_SERVER的环境变量中读取。

如果您在现有集群中添加了一个新的代理,那么只要您的初始配置中至少列出了3个其他正常代理,您就不必担心更改任何内容-其余的将被引导 em>由Controller,并返回给客户端,因此是属性的名称。您可能需要重新启动应用程序以获取新的引导程序,或者可以调整metadata.max.age.ms的值以更快地强制刷新。

如评论中所述,Consul在动态服务发现中很受欢迎,因此您只需为kafka.consul输入一个条目,然后通过DNS,它将获取在{{1}下注册的所有健康服务。 }