Chúng mình đã tạo một nhóm để các bạn dễ dàng chia sẻ và học hỏi về thiết kế hệ thống! 😄
Hãy tham gia để xây dựng cộng đồng System Design Việt Nam thật lớn mạnh nhé! 😍
Cộng Đồng System Design Việt Nam: Link nhóm Facebook
Kênh TikTok: Link TikTok
Giới Thiệu Về Apache Kafka
Trong bài viết trước, chúng ta đã cùng nhau tìm hiểu tổng quan về Apache Kafka cũng như kiến trúc của nó. Hôm nay, chúng ta sẽ khám phá cách cài đặt Apache Kafka một cách đơn giản nhất thông qua Docker Compose.
Yêu Cầu Hệ Thống
Trước khi bắt đầu, bạn cần chắc chắn rằng máy tính của bạn đã được cài đặt Docker và Docker Compose. Từ phiên bản sau này của Docker, Docker Compose đã được tích hợp sẵn. Bạn có thể kiểm tra tình trạng cài đặt bằng lệnh dưới đây trong terminal:
docker --version # Kiểm tra Docker đã được cài đặt chưa
docker-compose --version # Kiểm tra Docker Compose đã được cài đặt chưa
Nếu mọi thứ đã sẵn sàng, bạn sẽ thấy kết quả phiên bản tương ứng.
Cài Đặt Apache Kafka
Để bắt đầu, hãy tạo một file có tên là kafka.yml
. Bạn có thể lưu file này ở bất kỳ vị trí nào trên máy tính của mình. Chẳng hạn, bạn có thể tạo một thư mục con tên Docker
trong thư mục home của mình và lưu file trong đó.
Trong file kafka.yml
, hãy thêm nội dung sau:
version: '2'
services:
zookeeper:
image: confluentinc/cp-zookeeper:7.3.2
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
kafka:
image: confluentinc/cp-kafka:7.3.2
ports:
- "9092:9092"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
Sau đó, mở terminal, di chuyển đến thư mục chứa file kafka.yml
và chạy lệnh sau:
docker-compose -f kafka.yml up -d
Hãy chờ một vài phút để Docker tải về và khởi chạy các image cần thiết. Khi quá trình khởi chạy thành công, để kiểm tra, bạn hãy chạy lệnh sau:
docker ps
Kết Nối Đến Kafka
Chúng ta sẽ sử dụng ứng dụng Kafka Tool để kết nối đến Kafka. Đây là một ứng dụng desktop miễn phí cho phép bạn kết nối với Kafka cluster, duyệt qua các topic, xem và gửi tin nhắn. Bạn có thể tải xuống phiên bản tương ứng với hệ điều hành của mình tại đây.
Khi đã cài đặt, mở Kafka Tool và nhập các thông tin kết nối như sau:
- Name: Tên tùy ý cho kết nối.
- Bootstrap servers: localhost:9092
- Nhấn
Test
và nếu kết nối thành công, bạn sẽ nhận được thông báo. - Nhấn
Yes
để lưu kết nối.
Sau khi kết nối thành công, giao diện sẽ hiển thị các thông tin về topic hay consumer (có thể còn trống vì chúng ta mới khởi tạo Kafka).
Tạo Topic Mới Trong Kafka
Trong Kafka Tool, bạn có thể tạo topic mới bằng cách:
- Nhấp chuột phải vào mục
Topics
trong menu bên trái và chọnCreate Topic
. - Nhập các thông tin cần thiết như tên Topic, số lượng partition, số lượng replica, rồi nhấn
Add
. - Nếu nhận được thông báo thành công thì bạn đã tạo topic mới thành công.
Gửi Tin Nhắn Đến Kafka
Chúng ta có thể gửi một số tin nhắn vào topic mà chúng ta vừa tạo bằng cách sử dụng kafka-console-producer
.
Chạy lệnh sau để khởi chạy kafka-console-producer
:
docker exec -it <container_id> /bin/kafka-console-producer --bootstrap-server kafka:9092 --topic test-topic
Lưu ý rằng container_id
là ID của container Kafka mà bạn đã khởi chạy ở bước trước (bạn có thể xem ID này bằng lệnh docker ps
).
Nhập các tin nhắn như: hello world
và hello kafka
, sau đó quay trở lại Kafka Tool, chọn topic test-topic
, nhấn vào tab data
, và nhấn nút Retrieve messages
để xem các tin nhắn vừa gửi.
Nếu bạn thấy giá trị hiển thị dưới dạng chuỗi HEX thay vì các cụm từ bạn đã gửi, hãy chuyển sang tab Properties
và điều chỉnh Key
và Value
trong mục Content Types
về thành String
.
Quay trở lại tab Data
, bạn sẽ thấy kết quả rõ ràng hơn.
Kết Luận
Trong bài viết này, chúng ta đã tìm hiểu cách cài đặt Apache Kafka sử dụng Docker Compose, cũng như cách sử dụng Kafka Tool để theo dõi các topic và tin nhắn trong Kafka. Hy vọng rằng hướng dẫn này sẽ giúp ích cho bạn trong việc làm quen với Apache Kafka.
Cảm ơn bạn đã theo dõi bài viết!
Ghi Chú
Đừng quên tham gia nhóm của chúng mình để cùng nhau chia sẻ và khám phá thêm nhiều kiến thức về thiết kế hệ thống nhé! 😄
Cộng Đồng System Design Việt Nam: Link nhóm Facebook
Kênh TikTok: Link TikTok
source: viblo