Zum Inhalt springen

Kafka-Konnektor

Der Kafka-Konnektor liest von und schreibt zu Apache-Kafka-Topics, mit optionaler SASL/PLAIN-Authentifizierung.

Konnektor-Typen:

  • KafkaReader - Nachrichten aus einem Topic als Teil einer Konsumentengruppe konsumieren
  • KafkaWriter - Nachrichten an ein Topic produzieren

Aus einem Topic unter Verwendung einer Konsumentengruppe konsumieren:

{
"type": "KafkaReader",
"config": {
"brokers": ["localhost:9092"],
"topic": "sensor-events",
"groupId": "meddle-consumers"
}
}
{
"type": "KafkaReader",
"config": {
"brokers": [
"kafka-1.example.com:9092",
"kafka-2.example.com:9092",
"kafka-3.example.com:9092"
],
"topic": "factory.events",
"groupId": "meddle-factory-consumers",
"username": "kafka_user",
"password": "kafka_password"
}
}

Nachrichten an ein Topic produzieren:

{
"type": "KafkaWriter",
"config": {
"brokers": ["localhost:9092"],
"topic": "processed-events"
}
}
{
"type": "KafkaWriter",
"config": {
"brokers": [
"kafka-1.example.com:9092",
"kafka-2.example.com:9092"
],
"topic": "factory.processed",
"username": "kafka_user",
"password": "kafka_password"
}
}
  • brokers: Liste der Bootstrap-Broker-Adressen (host:port)
  • topic: Kafka-Topic-Name
  • groupId: (Reader) Konsumentengruppen-Kennung
  • username: (Optional) SASL/PLAIN-Benutzername
  • password: (Optional) SASL/PLAIN-Passwort

Die groupId steuert, wie Kafka-Partitionen über Reader verteilt werden:

  • Mehrere Reader mit der gleichen groupId teilen sich Partitionen für horizontale Skalierung.
  • Mehrere Reader mit unterschiedlichen groupId-Werten erhalten jeweils eine vollständige Kopie des Topic-Streams.
  • Offsets werden pro Konsumentengruppe committed; Neustarts setzen vom letzten committeten Offset fort.

Der Writer verwendet den LeastBytes-Balancer, der Nachrichten über Partitionen verteilt, um die pro-Broker-Last zu minimieren. Nachrichten innerhalb einer einzelnen Meddle-Pipeline landen nicht garantiert auf derselben Partition.

  • Die Authentifizierung wird nur aktiviert, wenn sowohl username als auch password bereitgestellt werden.
  • Der Konnektor verwendet SASL/PLAIN. In der Produktion mit TLS auf der Netzwerkschicht (Broker-Konfiguration) kombinieren.
  • MQTT - Leichtgewichtiges Pub/Sub für Geräte
  • AMQP - RabbitMQ-Alternative
  • NATS - Cloud-native Pub/Sub-Alternative