Cách cài đặt Kafka đơn giản sử dụng Docker Compose
Chúng mình có tạo Group cho các bạn cùng chia sẻ và học hỏi về thiết kế hệ thống nha 😄😄😄
Các bạn tham gia để gâ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: https://www.facebook.com/groups/sydexa
Kênh TikTok: https://www.tiktok.com/@sydexa.com
Ở bài viết trước chúng ta đã cùng tìm hiểu tổng quan về Kafka cũng như kiến trúc tổng thể của nó. Hôm nay chúng ta sẽ tiến hành cài đặt Apache Kafka bằng một trong những cách đơn giản nhất đó chính là sử dụng Docker Compose
Yêu cầu
Trước tiên máy của các bạn phải được cài đặt trước Docker và Docker Compose. Ở những phiên bản sau này, Docker Compose đã được tích hợp sẵn vào trong Docker. Sử dụng câu lệnh sau trong terminal để đảm bảo Docker và Docker Compose đã được cài đặt:
docker --version # Kiểm tra Docker đã được cài chưa
docker-compose --version # Kiểm tra Docker Compose đã được cài chưa
Nếu Docker và Docker Compose đã được cài đặt thì kết quả sẽ tương tự như sau:

Cài đặt Kafka
Đầu tiên tiến hành tạo 1 file tên kafka.yml, file này có thể đặt ở bất kỳ đâu trên thiết bị của bạn. Ở đây mình tiến
hạnh tạo 1 folder tên Docker trong thư mục home của mình và tạo file trong thư mục này

Tiến hành mở file vừa tạo và khai báo nội dung như 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
Mở termianl, di chuyển đến thư mục chứa file trên và chạy lệnh sau:
docker-compose -f kafka.yml up -d
Đợi vài phút để docker tiến hành pull các image cần thiết về và khởi chạy. Khi kafka khởi chạy xong ta được kết quả sau:

Để chắc chắn rằng Kafka đã chạy thành công, chạy lệnh sau:
docker ps

Kết nối thử đến Kafka
Mình sẽ sử 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 message. Nó cung cấp giao diện đồ họa dễ sử dụng. Các bạn có thể tải về phiên bản phù hợp với hệ điều hành của mình tại đây
Sau khi cài đặt xong, tiến hành mở Kafka Tool và nhập các thông tin kết nối
- Name: tên kết nối, có thể đặt tuỳ ý
- Bootstrap servers: localhost:9092
 
- Nhấn Test, nếu kết nối thành công, ta nhận được thông báo sau: 
- Nhấn Yesđể lưu kết nối
- Giao diện sau khi đã kết nối thành công, do chúng ta vừa khởi tạo Kafka, nên các mục như Topic, consumer đang trống
 
Tạo topic trên Kafka
- Nhấp phải vào mục Topicsở thành menu bên trái của Kafka Tool, chọnCreate Topic
- Nhập các thông tin như tên Topic, số lượng partition, số lượng replica (các khái niệm này các bạn có thể xem lại ở bài
viết trước của mình). Sau đó nhấn Add 
- Nếu nhận được thông báo như thế này thì đã tạo topic mới thành công
 
Gửi thử message vào Kafka
Chúng ta sẽ tiến hành gửi thử vài messgae vào topic chúng ta vừa tạo bằng công cụ 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
container_id là id của container kafka chúng ta khởi chạy ở bước trên (có thể xem bằng lệnh docker ps)

- 
Nhập các thử message: hello worldvàhello kafka 
- 
Quay trở lại Kafka Tool, chọn vào test-topic, nhấn sang tab data, và nhấn nútRetrieve messgaes 
- 
Xuất hiện 2 message chúng ta vừa gửi:  
- 
Tuy nhiên ở cột value, ta thấy giá trị của message đang hiển thị chuỗi HEX chứ không phải các cụm từ hello worldvàhello kafkamà chúng ta gửi, để có thể hiển thị value ở dạng string, ta chuyển sang tabProperties, điều chỉnhKey,Valuetrong mụcContent Typesvề thànhString 
- 
Quay trở lại tab Data, ta thu được kết quả như sau: 
Tổng kết
Như vậy chúng ta đã tìm hiểu xong cách cài đặt Kafka sử dụng Docker, cũng như sử dụng công cụ Kafka Tool để theo dõi các topic và message trên Kafka. Cảm ơn các bạn đã theo dõi bài viết.
Lời nhắn
Chúng mình có tạo Group cho các bạn cùng chia sẻ và học hỏi về thiết kế hệ thống nha 😄😄😄
Các bạn tham gia để gâ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: https://www.facebook.com/groups/sydexa
Kênh TikTok: https://www.tiktok.com/@sydexa.com
All rights reserved
 
  
 