Die Verwaltung Kafka Thema mit Feder

Geplant Kafka für queueing in unserer Anwendung. Ich habe einige wenig Erfahrung in RabbitMQ und Spring.

Mit RabbitMQ und Spring, die wir verwendet, um zu verwalten Warteschlange Schöpfung, während Start-up der Frühjahr-service.

Mit Kafka, ich bin mir nicht sicher, was könnte der beste Weg, um erstellen Sie die Themen? Gibt es eine Möglichkeit zum verwalten der Themen, mit Feder.

Oder sollten wir schreiben ein script, das hilft bei der Erstellung von Themen? Die Aufrechterhaltung einer separaten Skript für die Erstellung von Themen scheint ein wenig seltsam für mich.

Anregungen werden geschätzt.

  • kafka 1.1.0 hat auto.create.topics.enable standardmäßig auf true gesetzt, wenn es ok ist für Ihre Produktions-Anforderungen, die Sie bereits eingestellt sind 😀
  • Ist es ratsam, zu ermöglichen, dass in der Produktion?
  • Im Allgemeinen sehe ich nicht Fragen, indem Sie Sie aktivieren, da 99% der Zeit, die kafka konfiguriert ist erreichbar nur mit dem lokalen Netzwerk und oben auf, dass hinzuzufügen, können Sie die Authentifizierung, also es hängt davon ab, Ihre Architektur und security Anforderungen
  • Ja. Seine erreichbar nur mit dem lokalen Netzwerk
  • Ich würde es vorziehen, es zu deaktivieren, um zu verhindern, dass die app von der Erstellung, falsche/unnötige Thema versehentlich. Wenn es auf lokales Netzwerk, ein pre-prod-app startup in der Lage sein könnte, um auf das cluster zugreifen? Hängt davon ab, Ihre NW-Einstellung/Sicherheit, aber deaktivieren könnte kluge Wahl IMHO.
InformationsquelleAutor Thiru | 2018-06-18

 

One Reply
  1. 5

    Im Frühjahr ist es möglich, Themen zu erstellen, der beim start der Anwendung mit Bohnen:

    @Bean
    public KafkaAdmin admin() {
        Map<String, Object> configs = new HashMap<>();
        configs.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG,
                StringUtils.arrayToCommaDelimitedString(kafkaEmbedded().getBrokerAddresses()));
        return new KafkaAdmin(configs);
    }
    
    @Bean
    public NewTopic topic1() {
        return new NewTopic("foo", 10, (short) 2);
    }

    Alternativ können Sie auch schreiben Sie Ihre eigenen Themen erstellen von autowiring die AdminClient, so zum Beispiel das Lesen der Liste aus einen input-Datei oder erweiterte Eigenschaften wie partition-Nummern:

    @Autowired
    private KafkaAdmin admin;
    //...your implementation

    Beachten Sie auch, dass seit Kafka 1.1.0 auto.create.topics.enable ist standardmäßig aktiviert (siehe Broker-Konfigurationen).

    Weitere Informationen finden Sie im Frühling-kafka docs

    • Spring-Boot-auto-konfiguriert ein KafkaAdmin so müssen Sie nur fügen Sie die NewTopic @Beans in eine boot-Anwendung.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.