Kafka-connect

DevOps LABS 2021.2

Comment charger des données directement
depuis Kafka vers une BDD
avec une solution simple d'utilisation ?

Kafka-connect ? Pourquoi ?

  • Libre & open-source par Apache Kafka
  • Idéal pour intégrations simples entre Kafka / BDDs
  • Pas de code...
  • ... Uniquement de la configuration

Confluent

  • schema-registry
  • Connectors

schema-registry

  • Cohérence des structures des données
  • Gère les types de schema :
    • Avro® (Apache)
    • JSON schemas
    • Protobuf schemas (Google)

Exemple JSON schema


							{
							    "type": "object",
							    "properties": {
							        "phoneNumberEmitter": {
							            "type": "string"
							        },
							        "phoneNumberReceiver": {
							            "type": "string"
							        },
							        "message": {
							            "type": "string"
							        }
							    },
							    "additionalProperties": false
							}
							

Architecture

Exemple cas d'usage

Base de donnée non disponible

Connector en anomalie

Base de donnée remise en marche + relance du connector

Reprise des données présentes dans le topic

Monitoring

REST


							$ curl localhost:8083/connectors/s3-connector/status | jq
						

							{
								"name": "s3-connector",
								"connector": {
								   "state": "RUNNING",
								   "worker_id": "192.168.86.66:8083"
								},
								"tasks": [
								{
								   "id": 0,
								   "state": "RUNNING",
								   "worker_id": "192.168.86.66:8083"
								}
								],
								"type": "sink"
							 }
						

JMX

(Java Management eXtension)

Metric Description
status
kafka.connect:type=connector-metrics
Connector status: running, paused, or stopped
connector-type
kafka.connect:type=connector-metrics
Connector type: source or sink
... ...

Alternative

Kafka connect Consumer Spring Kafka
Time to market court long
Aucun développement
"Design for failures" natif
Maintenance Confluent Equipe devs
Métriques (à faire)

Middlewares

Kafka MinIO ELK PostgreSQL Fichier
Haute disponibilité

CONFLUENT COMMUNITY LICENSE

Pre-built Connectors, Schema Registry
"there is only one thing you cannot do, and that is use it to make a competing SaaS offering" "Excluded Purpose" is making available any software-as a-service, platform-as-a-service, infrastructure-as-a-service or other similar online service that competes with Confluent products or services that provide the Software."

Live demo

katacoda Step 8

Questions

scénario Katacoda


http://bit.ly/3fj4bW4