如何使用${akka.kafka.consumer}?

How to use ${akka.kafka.consumer}?

我正在尝试使用默认的 Kafka 配置设置,但我不确定 ${akka.kafka.consumer} 是如何设置的。阅读 https://doc.akka.io/docs/alpakka-kafka/current/consumer.html#config-inheritance 我定义了以下内容:

在application.conf中我定义:

our-kafka-consumer: ${akka.kafka.consumer} {
  kafka-clients {
    bootstrap.servers = "kafka-host:9092"
  }
}

但是当我启动 Akka 集群时收到错误:

Could not resolve substitution to a value: ${akka.kafka.consumer}

${akka.kafka.consumer}启动Akka集群时需要在外部设置的环境变量还是${akka.kafka.consumer}已经存在的配置变量?

重点是使用 ${akka.kafka.consumer} 然后根据需要覆盖默认值?

如您所见,文档部分是“配置继承”。它显示了如何在一个部分中定义正常配置,然后 extend/replace 在另一部分中定义该配置。他们显示的示例在顶部有一个 akka { kafka.consumer } 部分(单击示例的“源”按钮以查看此部分)。然后,由于HOCON的命名和继承特性,可以使用${akka.kafka.consumer}继承该部分。无需实际使用该继承来配置 Alpakka,这只是一种最佳实践。如果您只是想使用默认配置,那么它已经是默认配置了。

例如,如果您只是想定义 bootstrap 服务器,则不必像他们在该示例中那样使用继承来实现。您可以直接指定 akka.kafka.consumer.kafka-clients.bootstrap.servers = "yourbootstrap:9092" 。继承只是为了让您可以在一个地方指定共享设置。

如果您只是想学习如何配置 Alpakka,请查看 Settings 上面的部分。我发现查看参考配置最有帮助,您可以通过单击“重要消费者设置”旁边的 reference.conf 选项卡来查看。