Salta ai contenuti

Connettore Kafka

Il connettore Kafka legge da e scrive su topic Apache Kafka, con autenticazione SASL/PLAIN opzionale.

Tipi Connettore:

  • KafkaReader - Consuma messaggi da un topic come parte di un consumer group
  • KafkaWriter - Produce messaggi su un topic

Consuma da un topic utilizzando un consumer group:

{
"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"
}
}

Produci messaggi su un topic:

{
"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: Lista di indirizzi dei broker di bootstrap (host:port)
  • topic: Nome del topic Kafka
  • groupId: (Reader) Identificatore del consumer group
  • username: (Opzionale) Username SASL/PLAIN
  • password: (Opzionale) Password SASL/PLAIN

Il groupId controlla come le partizioni Kafka vengono distribuite tra i reader:

  • Più reader con lo stesso groupId condividono le partizioni per la scalabilità orizzontale.
  • Più reader con valori groupId diversi ricevono ciascuno una copia completa dello stream del topic.
  • Gli offset vengono committati per consumer group; i riavvii riprendono dall’ultimo offset committato.

Il writer utilizza il balancer LeastBytes, che distribuisce i messaggi tra le partizioni per minimizzare il carico per broker. I messaggi all’interno di una singola pipeline Meddle non sono garantiti atterrare sulla stessa partizione.

  • L’autenticazione è abilitata solo quando vengono forniti sia username che password.
  • Il connettore utilizza SASL/PLAIN. Abbina a TLS al livello di rete (configurazione del broker) quando esegui in produzione.
  • MQTT - Pub/sub leggero per dispositivi
  • AMQP - Alternativa RabbitMQ
  • NATS - Alternativa pub/sub cloud-native