используйте environment var для настройки хоста kafka на seedstack - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь использовать env var для настройки kafka на seedstack.Синтаксис работает с конфигурацией mongoDB, но не с конфигурацией kafka.

вот мой монго конф:

env:
  MONGO_URL: "localhost:27017"
  MONGO_CREDENTIAL: ""

mongoDb:
  clients:
    mongoClient:
      databases: mongoDB
      uri: mongodb://${env.MONGO_CREDENTIAL}${env.MONGO_URL}

вот мой монго кафка

env:
  MONGO_URL: "localhost:27017"
  MONGO_CREDENTIAL: ""

kafka:
  consumers:
    consumer1:
      topics: [topic1]
      properties:
        bootstrap.servers: ${env.KAFKA_URL}
        key.deserializer: org.apache.kafka.common.serialization.StringDeserializer
        value.deserializer: org.apache.kafka.connect.json.JsonDeserializer
        auto.offset.reset: earliest

Кажется, что средаПодстановка var не работает для va в свойствах : .

Есть идеи о том, как заставить это работать?

1 Ответ

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

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

Я выпустил версию 3.1.4 библиотеки конфигурации, которая устраняет проблему.Он будет включен в будущую версию SeedStack, но вы можете извлечь из него выгоду сейчас, добавив это управление зависимостями в свой pom.xml, ПОСЛЕ seedstack-bom импорт:

<dependencyManagement>
    <dependencies>

        <!-- seedstack-bom import is here -->

        <dependency>
            <groupId>org.seedstack.coffig</groupId>
            <artifactId>coffig</artifactId>
            <version>3.1.4</version>
        </dependency>
    </dependencies>
</dependencyManagement>

В качестве примечания, я предлагаю, чтобы вы ничего не определяли в поддереве env вручную, а вместо этого использовали механизм возврата макросов:

${env.SOME_VAR:'defaultValue'}

Обратите внимание, что вы можете каскадно использовать отступ:

${env.SOME_VAR:sys.someSystemProperty:'defaultValue'}

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

...