Kiến trúc Kafka

Giới thiệu về Apache Kafka

Mike Metzger

Data Engineering Consultant

Thành phần Kafka

  • Máy chủ Kafka
    • Cụm gồm một hoặc nhiều máy tính
    • Lưu trữ dữ liệu
    • Quản lý giao tiếp
    • Có thể tích hợp hệ thống khác (cơ sở dữ liệu, log, v.v.)
  • Client Kafka
    • Đọc qua consumer
    • Ghi qua producer
    • Xử lý dữ liệu theo nhu cầu
Giới thiệu về Apache Kafka

Máy chủ Kafka

  • Lưu trữ, còn gọi là Kafka Broker
    • Dữ liệu do producer ghi được lưu và tổ chức theo topic
    • Topic được phân vùng, tức lưu thành các phần riêng
    • Thông điệp/sự kiện vào phân vùng dựa trên id sự kiện
    • Truy xuất thông điệp theo đúng thứ tự đã ghi

Lưu trữ và phân vùng Kafka

1 Hình từ https://kafka.apache.org/intro
Giới thiệu về Apache Kafka

Phân vùng & sao chép

  • Kafka chịu lỗi tốt
  • Nếu một hệ thống offline, hệ khác vẫn đáp ứng dữ liệu
  • Số lỗi tối đa = hệ số sao chép - 1
  • Hệ số sao chép tối đa = số máy chủ
  • Sao chép thực hiện bằng cách nhân bản phân vùng

Cụm Kafka, broker và topic.png

Giới thiệu về Apache Kafka

Ví dụ

Cụm Kafka, broker và topic.png

  • Cụm Kafka với 3 broker
  • Có 3 topic
  • Sao chép 2x == chịu lỗi 1 hệ thống
  • Broker 1 có bản sao Topic 1 & Topic 2
  • Broker 2 có bản sao Topic 2 & Topic 3
  • Broker 3 có bản sao Topic 1 & Topic 3
  • Mỗi topic được phân bố trên 2 broker trong cụm
Giới thiệu về Apache Kafka

Ví dụ với 1 lỗi

Cụm Kafka, broker và topic - 1 broker lỗi.png

  • Broker 2 bị lỗi
  • Hệ số sao chép 2x
    • 2 - 1 == chịu được 1 hệ thống lỗi
  • Mỗi topic vẫn còn ít nhất một bản sao trong cụm
Giới thiệu về Apache Kafka

Ví dụ với 2 lỗi

Cụm Kafka, broker và topic - 2 broker lỗi.png

  • 2 broker bị lỗi
  • Hệ số sao chép 2x
  • Số lỗi vượt mức hỗ trợ (1 hệ thống)
  • Topic 2 không còn khả dụng trong cụm
    • Topic 1 và 3 vẫn còn, nên không phải lỗi toàn bộ
Giới thiệu về Apache Kafka

Ayo berlatih!

Giới thiệu về Apache Kafka

Preparing Video For Download...