Skip to content

Starting Kouncil

Jacek Grobelny edited this page Jul 29, 2021 · 2 revisions

W tej chwili można odpalić Kouncila na dwa sposoby:

  1. Po staremu, podając bootstrapServers
  2. Dostarczając plik z konfiguracją

bootstrapServers wygląda jak wcześniej, czyli oddzielona przecinkiem lista, np odpalajać spring boota bezpośrednio z kodów

mvn spring-boot:run -Dspring-boot.run.arguments="--bootstrapServers=uber.poczta:9092,kouncil.consdata.local:8001"

plik z konfiguracją odpalając kody bezpośrednio ze spring boota można dostarczyć tak

mvn spring-boot:run -Dspring-boot.run.arguments="--spring.config.name=kouncil --spring.config.additional-location=./"

Pod podaną ścieżką musi wtedy istnieć plik kouncil.yaml (względnie kouncil.properties)

Przykładowy i działający plik z konfiguracją wygląda tak:

kouncil:
  clusters:
    - name: uber
      brokers:
        - host: uber.poczta.consdata.local
          port: 9092
          jmxPort: 5088
        - host: uber.poczta.consdata.local
          port: 9093
          jmxPort: 5089
        - host: uber.poczta.consdata.local
          port: 9094
          jmxPort: 5090
    - name: kouncil
      brokers:
        - host: kouncil.consdata.local
          port: 8001
        - host: kouncil.consdata.local
          port: 8002
    - name: local
      brokers:
        - host: 172.19.132.145
          port: 9092
          jmxPort: 8011
          jmxUser: admin
          jmxPassword: ********

Jak to odpalić z dockera?

wersja z bootstrapServers działa tak samo jak wcześniej:

docker run -p 8080:8080 -e bootstrapServers="172.19.123.3:9092" consdata/kouncil:latest

a żeby dostarczyć plik konfiguracyjny, wystarczy podmontować z zewnątrz katalog, w którym będzie siedział kouncil.yaml:

docker run -p 8080:8080 -v /home/users/mmergo/Kouncil/kafka/config/:/config/ consdata/kouncil:latest

Co można zrobić w pliku konfiguracyjnym?

przede wszystkim, na poziomie konkretnego brokera można podać trzy rzeczy:

  1. jmxPort
  2. jmxUser
  3. jmxPassword

są chyba self-explanatory ;)

Natomiast, każdą z tych trzech rzeczy można też podać na poziomie clustra, i zostanie wtedy automagicznie przepropagowana na brokery w klastrze. Załóżmy, że klaster ma wszędzie te same jmxUser i jmxPassword, ale różne porty:

kouncil:
  clusters:
    - name: uber
      jmxUser: user
      jmxPassword: password
      brokers:
        - host: uber.poczta.consdata.local
          port: 9092
          jmxPort: 5088
        - host: uber.poczta.consdata.local
          port: 9093
          jmxPort: 5089
        - host: uber.poczta.consdata.local
          port: 9094
          jmxPort: 5090

W tej wersji user i hasło spropagują się na brokery