NTM Solutions

Thứ Ba, 14 tháng 2, 2023

Kafka là gì? What is Kafka?

Apache Kafka là một nền tảng streaming sự kiện phân tán mã nguồn mở được hàng nghìn công ty sử dụng cho các đường dẫn dữ liệu hiệu suất cao, phân tích streaming, tích hợp dữ liệu và các ứng dụng quan trọng.

Apache Kafka is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications.

Trang web official của Kafka:

https://kafka.apache.org/

01 định nghĩa khác:

Kafka là hệ thống message pub/sub phân tán (distributed messaging system). Bên pulbic dữ liệu được gọi là producer, bên subscribe nhận dữ liệu theo topic được gọi là consumer
Kafka có khả năng truyền một lượng lớn message theo thời gian thực, trong trường hợp bên nhận chưa nhận message vẫn được lưu trữ sao lưu trên một hàng đợi và cả trên ổ đĩa bảo đảm an toàn. Đồng thời nó cũng được replicate trong cluster giúp phòng tránh mất dữ liệu.


01 số khái niệm trong Kafka:

  • PRODUCER: Kafka lưu, phân loại message theo topic, sử dụng producer để publish message vào các topic. Dữ liệu được gửi đển partition của topic lưu trữ trên Broker.

  • CONSUMER: Kafka sử dụng consumer để subscribe vào topic, các consumer được định danh bằng các group name. Nhiều consumer có thể cùng đọc một topic.

  • TOPIC: Dữ liệu truyền trong Kafka theo topic, khi cần truyền dữ liệu cho các ứng dụng khác nhau thì sẽ tạo ra cá topic khác nhau.

  • PARTITION: Đây là nơi dữ liệu cho một topic được lưu trữ. Một topic có thể có một hay nhiều partition. Trên mỗi partition thì dữ liệu lưu trữ cố định và được gán cho một ID gọi là offset. Trong một Kafka cluster thì một partition có thể replicate (sao chép) ra nhiều bản. Trong đó có một bản leader chịu trách nhiệm đọc ghi dữ liệu và các bản còn lại gọi là follower. Khi bản leader bị lỗi thì sẽ có một bản follower lên làm leader thay thế. Nếu muốn dùng nhiều consumer đọc song song dữ liệu của một topic thì topic đó cần phải có nhiều partition.

  • BROKER: Kafka cluster là một set các server, mỗi một set này được gọi là 1 broker.

  • ZOOKEEPER: được dùng để quản lý và bố trí các broker.

Cấu trúc Kafka

Kafka vs Spring Boot
Sử dụng Kafka

  • Sử dụng như một hệ thống message queue thay thế cho ActiveMQ hay RabbitMQ
  • Website Activity Monitoring: theo dõi hoạt động của website
  • Stream Processing: Kafka là một hệ thống rất thích hợp cho việc xử lý dòng dữ liệu trong thời gian thực. Khi dữ liệu của một topic được thêm mới ngay lập tức được ghi vào hệ thống và truyền đến cho bên nhận. Ngoài ra Kafka  còn là một hệ thống có đặc tính duribility dữ liệu có thể được lưu trữ an toàn cho đến khi bên nhận sẵn sàng nhận nó.
  • Log Aggregation: tổng hợp log
  • Metrics Collection: thu thập dữ liệu, tracking hành động người dùng như các thông số như page view, search action của user sẽ được publish vào một topic và sẽ được xử lý sau
  • Event-Sourcing: Lưu lại trạng thái của hệ thống để có thể tái hiện trong trường hợp system bị down.

Kafka trong thương mại điện tử

Xem bài demo 10 phút về Kafka (hệ thống UNIX?):

https://kafka.apache.org/quickstart

Trong bài demo này chúng ta sẽ thấy 01 tấm hình 

-> Bấm vào đó sẽ tự động load về video Youtube thật sự 
(trang web sẽ tải nhanh hơn so với cách nhúng video Youtube thông thường)

Xem thêm về Kafka:

https://bizflycloud.vn/tin-tuc/kafka-la-gi-gioi-thieu-tong-quan-ve-kafka-20220810160652162.htm


P/S: 
+ k liên quan gì nhưng lúc mình tìm hình Kafka trên mạng thì thấy ông nhà văn này: Franz Kafka
https://en.wikipedia.org/wiki/Franz_Kafka

+ Đây là nhà văn người Cộng Hòa Séc gốc Đức sống trong thời kỳ thế chiến thứ 1 (3 July 1883 – 3 June 1924).

+ Ông nhà văn này rất nổi tiếng trong cộng đồng nói tiếng Đức với tiểu thuyết The Trial.

+ Ông hành nghề luật sư và mất vì bệnh lao khi còn trẻ.

The Trial - Franz Kafka


Bản thảo viết tay - The Trial

Không có nhận xét nào:

Đăng nhận xét

Facebook Youtube RSS