如何从属性文件中设置Kafka参数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从属性文件中设置Kafka参数?相关的知识,希望对你有一定的参考价值。

我目前正在做的事情如下:

val topic = "mytopic"
val zkhosts = "localhost"
val zkports = "2181"

在我的代码中设置然后将其发送到kafkastream函数,但我想从.properties文件中读取它。有没有可能的解决方案?

答案

鉴于/tmp/sample.properties的这个属性文件

kafka.topic = "mytopic"
kafka.zkhost = "localhost"
kafka.zkports = 2191

我们可以使用普通的java Property API来加载属性:

import java.io.FileReader
val configFile = new java.io.File("/tmp/sample.properties")
val reader = new FileReader(configFile)
val props = new Properties()
props.load(reader)
reader.close()

您也可以使用您喜欢的配置库来加载属性文件,就像在任何其他程序上一样。

例如,您可以使用流行的typesafe config lib。 Scala有很多包装器,但是在它的原始形式中你可以做类似的事情:

import com.typesafe.config.ConfigFactory
val configFile = new java.io.File("/tmp/sample.properties")
val kafkaConfig = ConfigFactory.parseFile(configFile)

import java.util.Properties
val kafkaProperties = new Properties()
kafkaProperties.put("zookeeper.hosts", kafkaConfig.getString("kafka.zkhost"))
kafkaProperties.put("zookeeper.port", kafkaConfig.getInt("kafka.zkports"):java.lang.Integer)
kafkaProperties.put("kafka.topic", kafkaConfig.getString("kafka.topic"))

(有很多方法可以让它变得更好和更紧凑。这里我使用的是最常见的形式)

以上是关于如何从属性文件中设置Kafka参数?的主要内容,如果未能解决你的问题,请参考以下文章

从活动中设置片段的参数

从活动中设置片段的参数

如何在 Kafka 中设置消息的大小?

vscode中设置vue代码片段

如何在android的片段中设置应用程序上下文?

根据选择构建参数在属性文件中设置变量