假设我们要使用confluent-kafka-dotnet,ProducerConfig在其BootstrapServers属性中采用了一系列Kafka代理地址。
我们可以将这些地址放在web.config中,但是假设我们使用的是微服务架构,如果我们要更改Kafka集群配置(例如添加新的代理),则必须更新很多Web .config文件。
我很好奇其他人如何解决了这个问题。
答案 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}下注册的所有健康服务。 }