Khái Niệm Cơ Bản Về Apache Kafka - Phần 1
Hellu mọi người, mình xin chúc tất cả mọi người một năm Giáp Thìn 2024 trọn vẹn niềm vui và đạt nhiều thành công. ✊️✊️✊️ Mình là Toni Dev và đây là bài viết đầu tiên của mình trên Viblo.
Trong thế giới công nghệ ngày nay, dữ liệu thời gian thực (real-time data) ngày càng trở nên quan trọng đối với nhiều doanh nghiệp. Nó không chỉ giúp cải thiện dịch vụ khách hàng mà còn quản lý sản phẩm và tối ưu hóa quy trình vận hành. Do đó, các công cụ thu thập và lưu trữ dữ liệu real-time đang trở nên phổ biến. Trong số đó, Apache Kafka nổi bật như một giải pháp hiệu quả.
1. Apache Kafka Là Gì?
Apache Kafka là một nền tảng streaming sự kiện (event streaming platform) được thiết kế để phân phối (distributed), có khả năng mở rộng (scalable), sở hữu thông lượng cao (high-throughput) và độ trễ thấp (low-latency). Hệ sinh thái của Kafka rất phong phú, cho phép tích hợp và mở rộng dễ dàng.
Một cách đơn giản, Kafka là nền tảng để xử lý việc truyền tải thông điệp giữa nhiều hệ thống hoặc các mô-đun khác nhau. Nền tảng này hoạt động trên nhiều server, đảm bảo rằng dữ liệu được sao chép nhiều lần. Điều này giúp hệ thống duy trì hoạt động liên tục ngay cả khi một vài server gặp sự cố.
2. Những Khái Niệm Chính Trong Kafka
- Producer: Là bất kỳ ứng dụng nào có chức năng xuất bản thông điệp (messages) vào một topic.
- Messages: Trong Kafka, messages hay được gọi là sự kiện (event), là dữ liệu lưu trữ trong topic dưới dạng mảng byte.
- Cluster: Là hệ thống bao gồm Zookeeper và nhiều broker (tương đương với một server) hoạt động cùng nhau. Chỉ có một broker chính hoạt động, nhưng tất cả các broker còn lại sẽ nhận được bản sao dữ liệu từ broker chính.
- Broker: Là server lưu trữ các topic. Có nhiều broker để đảm bảo tính khả dụng trong trường hợp một broker gặp sự cố.
- Zookeeper: Được coi là quản lý trong cluster, có chức năng quản lý và phân phối các broker.
- Topic: Là nơi lưu trữ các bản ghi được xuất bản và cho phép các hệ thống giao tiếp với nhau. Tên topic phải là UNIQUE để đúng người nhận thông tin, tránh sự lộn xộn.
- Partition: Mỗi topic được chia thành nhiều phần nhỏ gọi là partition.
- Offset: Mỗi partition được chia thành nhiều đoạn nhỏ hơn, mỗi đoạn gọi là offset, nơi lưu trữ dữ liệu, với mỗi offset chứa một message (event).
- Consumer: Là bất kỳ ứng dụng nào có khả năng đăng ký vào một topic để nhận message.
3. Cách Hoạt Động Của Kafka
Dưới đây là mô tả quy trình gửi một message từ Producer đến Consumer:
- Đầu tiên, bạn cần một hệ sinh thái Apache Kafka, bao gồm một cluster, nhiều broker và một Zookeeper.
- Tiếp theo, bạn cần tạo một topic (ví dụ: tạo Topic A trong Broker 1).
- Khi topic đã được tạo, Producer có thể xuất bản các message vào Topic A.
- Bây giờ, Topic A đã chứa message và Consumer có thể đăng ký vào topic này để nhận các message mới.
4. Tóm Tắt
Trên đây là những kiến thức căn bản nhất về Apache Kafka để giúp bạn có cái nhìn tổng quan và hiểu rõ hơn về nó. Ở phần 2, mình sẽ đào sâu hơn về Kafka Partition, Kafka Offset và Kafka Consumer Group. Series này dự kiến sẽ có 4 phần (2 lý thuyết và 2 thực hành) để bạn không chỉ nắm lý thuyết mà còn biết cách ứng dụng vào thực tế.
Đây là bài viết đầu tiên của mình trên Viblo, nếu bạn có thông tin nào chưa đầy đủ hoặc câu hỏi nào, hãy để lại bình luận để mình có thể cải thiện nhé 😁.
Tài Liệu Tham Khảo:
- Video Giới Thiệu Về Apache Kafka
- Blog Giải Thích Về Kafka
source: viblo