Các khái niệm cơ bản trong Apache Kafka
Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh
Để làm việc với Apache Kafka, các bạn cần nắm một số khái niệm cơ bản về:
- Producer
- Consumer
- Broker
- Cluster
- Topic
- Topic Partitions
- Partition Offset
- Consumer Group
Xem thêm tuyển dụng UI UX Designer hấp dẫn trên TopDev
Producer
Producer là những application produce data và gửi data tới Apache Kafka Server. Data này sẽ là những message có định dạng, được gửi dưới dạng mảng byte tới Apache Kafka server. Ví dụ như các bạn có một tập tin .txt chứa text bên trong, chúng ta có thể dùng Producer để đọc từng dòng trong tập tin này rồi gửi tới Apache Kafka server.
Consumer
Consumer là những application nhận message từ Apache Kafka server với message được gửi từ Publisher. Consumer cần phải subcribe vào một topic nào đó của Apache Kafka server để có thể nhận được tất cả các message được emit vào topic này.
Sau khi nhận được data, Consumer có thể thêm code để xử lý data theo nhu cầu của mình.
Broker
Broker là Apache Kafka server, là cầu nối giữa Message Publisher và Message Consumer, giúp chúng có thể trao đổi message với nhau.
Cluster
Cluster là một group các Brokers hay nói cách khác là group các Apache Kafka server.
Topic
Topic được định nghĩa trong Apache Kafka server, là nơi để Publisher send data và cũng là nơi để Consumer subscribe để nhận data từ Publisher. Sử dụng topic giúp Apache Kafka phân loại được message và Consumer cũng biết là mình lấy data từ đâu.
Topic Partitions
Apache Kafka là một distributed messaging system và chúng ta có thể setup Apache Kafka server với cluster. Trong trường hợp một topic nhận quá nhiều message tại cùng một thời điểm, chúng ta có thể chia topic này thành những partitions được share giữa các Apache Kafka server với nhau trong một cluster được handle các message này.
Một partition sẽ small và independent với các partitions khác. Số lượng partition cho mỗi topic thì tuỳ theo nhu cầu của ứng dụng mà chúng ta có thể quyết định.
Partition Offset
Trong một topic partition, các message sẽ được lưu trữ và đánh dấu theo từng offset. Mỗi khi một message mới vào topic, Apache Kafka server sẽ quyết định message này nằm trong partition nào, offset nào của partition đó. Giá trị của các offset sẽ tăng dần trong một partition và chỉ available cho một Apache Kafka server.
Để lấy được một message trong Apache Kafka server, chúng ta cần chỉ định rõ topic name, partition number và offset number.
Consumer Group
Consumer group là một group các Consumer consume message từ Apache Kafka server. Mỗi một Consumer Group sẽ share với nhau việc handle messsage.
Bài viết gốc được đăng tải tại huongdanjava.com
Có thể bạn quan tâm:
- Kafka là gì? Ứng dụng Kafka cho hệ thống message
- 10x engineer – cắt giảm chi phí 10 lần
- Cài đặt Apache Kafka trên macOS
Xem thêm việc làm CNTT hấp dẫn trên TopDev
- B BenQ RD Series – Dòng Màn Hình Lập Trình 4k+ Đầu Tiên Trên Thế Giới
- i iOS 18 có gì mới? Có nên cập nhật iOS 18 cho iPhone của bạn?
- G Gamma AI là gì? Cách tạo slide chuyên nghiệp chỉ trong vài phút
- P Power BI là gì? Vì sao doanh nghiệp nên sử dụng PBI?
- K KICC HCMC x TOPDEV – Bước đệm nâng tầm sự nghiệp cho nhân tài IT Việt Nam
- T Trello là gì? Cách sử dụng Trello để quản lý công việc
- T TOP 10 SỰ KIỆN CÔNG NGHỆ THƯỜNG NIÊN KHÔNG NÊN BỎ LỠ
- T Tìm hiểu Laptop AI – So sánh Laptop AI với Laptop thường
- M MySQL vs MS SQL Server: Phân biệt hai RDBMS phổ biến nhất
- S SearchGPT là gì? Công cụ tìm kiếm mới có thể đánh bại Google?