Kafka est un courtier de messages distribués largement utilisé comme bus à usage général pour le Big Data. Kafka vous permet à la fois d'implémenter le traitement en temps réel d'un grand nombre d'événements et de créer un pipeline par lots pour la livraison de journaux.
Pourquoi utilisons-nous Kafka? En bref, l'unification. Et si dans un peu plus de dĂ©tails - des dizaines de fournisseurs, des tĂ©raoctets de journaux chaque jour, des pipelines en ligne et hors ligne - il est extrĂȘmement difficile de faire face Ă cela sans un seul bus de donnĂ©es haute performance.
, Kafka, pipeline. , exactly once . , - Kafka, . , Kafka , - .
:
2017 . Kafka 0.8.2. . .
- , Rambler, . : «, Rambler. ». Rambler â . Bing .
, Google, -, .
, , , Rambler? : « Rambler ?». Rambler .
Rambler Group . , : Rambler, , , , - . 40 000 000 .
, , - . . , Rambler , .
, .
, , ?
- . , , . . , Ford . , - .
- .
- CTR.
- .
- .
- .
, .
, .
worker. , . , , Hadoop.
HDFS Spark Hive. , â key-value Aerospike.
, :
- -, . â ( ), ().
- -, worker . - , , Hadoop. Worker â .
- -, real-time pipeline . - . , HDFS, HDFS , Aerospike. , , â real-time .
? , , Kafka. Kafka â . , RabbitMQ, , . Kafka .
Kafka - HDFS, Gobblin.
Kafka LinkedIn. Map-Reduce , Hadoop Kafka HDFS.
real time.
Spark Streaming. Spark, Hadoop (LLAP). Kafka Spark Streaming , key-value .
, HDFS, . Kafka , Aerospike.
Aerospike .
?
- -, , Kafka exactly once.
- -, , - Kafka 4 , .
- -, , , Kafka .
, Kafka.
Kafka ( â ) ZooKeeper . . Kafka producers, Kafka consumers.
Kafka . topic. .
array list. , , , .
, .
Kafka, , Kafka , .
Kafka . : master-slave. Master Kafka .
Consumers, producers , . . (master ). a .
, â slave- ( ). , .
, , . . , , . Kafka - slave . , .
Kafka 2 : clean unclean. , unclean â - , , clean â , . . â .
slave , , , unclean, , , clean.
â .
, : , . Kafka , , , Kafka , .
, ?
. , - . Kafka.
. Kafka , .
, , . . ( ).
. -1, Kafka . Kafka â Kafka. , Kafka in sync. insync 1, .
insync.replicas = 2, Kafka , .
. , , . , , - overhead , . . Kafka, .
, , . - , Kafka , .
. , , â . insync.replicas = 2, replication factor = 3. insync , , Kafka.
Kafka .
, . - . :
Latest offset â .
Earliest offset â .
Kafka , - , , . earliest offset . , earliest latest offset, , .
consumer - , . . earliest offset offset - . consumer offset latest offset ( ).
, . , , consumer .
, consumer Kafka â .
â . .
? Consumer Kafka. Kafka : . , Kafka .
? : consumer , Kafka , , , . .
. , consumer , Kafka , . Kafka , . . . .
â . : consumer Kafka, , : «Kafka, , ». , at least once .
At least once â , , .
? : , , , consumer Kafka, - kill -9
consumer , , . .
. pipeline at least once .
exactly once. ?
exactly once â Kafka. . , : - , . .
, . â HDFS, .
LinkedIn. Gobblin exactly once HDFS.
, consumer 2 - . production . move (mv) Hadoop .
onsumer .
, , . consumerâ, . , . .
â fetch , fetchâ. , . exactly once .
:
- Producer .
- Kafka .
- HDFS exactly once. Exactly once â , .
. , .
-, . pipeline â : ( ) Hadoop.
( 1-2 â ), pipeline .
, , , .
pipeline, , . , .
-, . Exactly once, , .
, consumers ( real-time ): Kafka 2-3 .
consumers , : Kafka, Kafka, etc.
: Kafka â . Kafka .
( ), . , pipeline.
, Kafka 4 .
â . â . â .
, ( ) - .
, , â Kafka , - . : Kafka , .
? :
- -, Kafka .
- -, Kafka .
, . , .
, 4 â Kafka .
? - , â . Kafka , . .
, , , , .
â . : 4 , ?
, . :
, , , .
Kafka ? - , Kafka : « , - ». :
. .
, , 3, :
Kafka â , .
, Kafka 0.8.2, , . .
, , , .
. uplink 1 Gb. 125 . 150 . â .
, Kafka RAID 5. ? â . RAID 5 Kafka . , RAID 5 , Kafka . Kafka RAID 10.
:
- , .
- .
- .
- Kafka â .
.
?
, â at least once.
. consumer Kafka â Camus, Gobblin.
history. - . , .
- , Camus . , . - , .
. :
:
Kafka . 4 , , , consumer . Hadoop , , .
. ?
Kafka 5 , 3 . 5 . .
Kafka 18 . 5 . 5 .
, , , , .
.
:
, Kafka , .
, , , :
, 4 - . , . , Kafka leader reelection, .
-, . , , , .
-, . . . , , :
- , in sync
:
? , â . , , . . .
, -, . , , . , Kafka real-time . Kafka.
consumerâ:
10 , . Kafka , 10 , : «!».
. , . , .
:
exactly once Kafka, . pipeline. producer', consumer' Kafka. , exactly once . , .
. â , .
Il vaut également la peine de surveiller de nombreuses mesures supplémentaires. Le plus important est le temps de réponse de Kafka aux demandes, tant pour le producteur que pour le consommateur. Et cela vaut sans aucun doute la peine de surveiller les métriques classiques comme le processeur, la mémoire, etc.
Pour toute question sur le rapport, vous pouvez contacter Artyom Vybornov