Ph?n 2: T?ng quan v? Nguyên ly ho?t ??ng c?a Kafka
Nh? hình v? ta có th? r?ng trong ki?n trúc c?a Kafka bao g?m có nh?ng ph?n chính v?i nhi?m v? nh? sau:
Ti?p theo, chúng ta s? ?i Sau vào cách Kafka ho?t ??ng
Khi m?t s? ki?n x?y ra, Producer ti?p nh?n, chuy?n ??i s? ki?n ?ó thành m?t message và g?i vào Kafka Topic. Key trong message là m?t thành ph?n tùy ch?n, ???c s? d?ng ?? xác ??nh partition th?ng qua c? ch? hash c?a Kafka.
V? b?n ch?t, message và key ??u s? ???c m? hóa thành Byte Array khi g?i t? Producer và t? ??ng ???c gi?i m? khi ???c ??c b?i Consumer. ??m b?o r?ng Kafka kh?ng b? gi?m hi?u su?t vì c?u trúc message.
M?t message trong Kafka kh?ng có m?t ID riêng bi?t mà ???c xác ??nh th?ng qua v? trí offset, do Kafka t? ??ng s?p x?p trong Partition. Tránh vi?c ph?i l?u tr? thêm các c?u trúc index ?nh h??ng t?i hi?u su?t c?a h? th?ng.
Trong tr??ng h?p kh?ng có khóa Key thì Kafka s? phan ph?i message ??ng ??u gi?a các Partition b?ng ph??ng pháp round-robin
Trong tr??ng h?p g?i message v?i Key, Kafka s? d?ng c? ch? hasing trên key ?? ??nh tuy?n mesage ??n m?t partition c? th?. Sau ?ó, trong partition ?ó, các message s? ???c s?p x?p tu?n t? theo th? t? th?i gian g?i.
Tr??ng h?p Consumer b? l?i ho?c ng?ng ho?t ??ng!!!!!!
??i v?i Kafka Broker và Consumer, sau khi Kafka Broker g?i message thành c?ng t?i Consumer, Consumer s? ??nh k? g?i m?t tin nh?n ph?n h?i (Commit) ch?a offset cu?i cùng c?a message ?? ???c x? ly thành c?ng. Kafka Broker s? l?u l?i th?ng tin c?a offset này.
Trong tr??ng h?p Consumer g?p l?i ho?c ng?ng ho?t ??ng, khi kh?i ??ng l?i, Consumer s? ti?p t?c kéo các message t? offset cu?i cùng ?? ???c commit, ??m b?o r?ng kh?ng có d? li?u nào b? ??c l?i ho?c b? b? sót.
T? nh?ng ki?n th?c c? b?n phía trên, h? th?ng Kafka có th? ???c phát tri?n ?? ??m b?o tính s?n sàng và ?n ??nh h?n th?ng qua ki?n trúc Kafka Cluster v?i m? hình Leader-Follower. Trong ki?n trúc này thì m?i topic ???c chia thành các partitions, và trong m?i partition, m?t broker s? ???c b?u ch?n làm Leader.
Leader ch?u trách nhi?m nh?n message tr?c ti?p t? Producer và x? ly các yêu c?u ??c t? Consumer. ??ng th?i, d? li?u t? Leader s? ???c sao chép ??ng b? t?i các Follower (replica).
Các follower ?óng vai trò d? phòng, ??m b?o r?ng n?u Leader g?p s? c?, m?t Follower s? ???c t? ??ng b?u ch?n ?? thay th?, giúp h? th?ng duy trì ho?t ??ng mà kh?ng m?t d? li?u.
Ki?n trúc Leader-Follower ??m b?o r?ng:
K?t thúc ph?n 2 t?i ?ay, ph?n 3 s? nói r? h?n v? khi nào s? d?ng Kafka và t?i sao Kafka l?i tr? thành l?a ch?n hàng ??u trong x? ly d? li?u phan tán.