- vừa được xem lúc

Kafka Fundamental - Bài 7: Cài đặt và Khởi động Kafka

0 0 1

Người đăng: Đức Phúc

Theo Viblo Asia

Xin chào, lại là mình - Đức Phúc, anh chàng hơn 6 năm trong nghề vẫn nghèo technical nhưng thích viết Blog để chia sẻ kiến thức bản thân học được trong quá trình “cơm áo gạo tiền” đây. Các bạn có thể theo dõi mình thêm qua một số nền tảng bên dưới nhé:

Như vậy là chúng ta đã cùng đi qua những phần cơ bản nhất trong Kafka, từ bài hôm nay, chúng ta sẽ cùng nhau đi vào làm việc với Kafka nhé!

Ở bài này, mình sẽ thao tác trên MacOS. Với 2 hệ điều hành Linux và Windows, mình sẽ để link hướng dẫn ở cuối bài nhé

1. Cài đặt Kafka

Với MacOS, chúng ta sẽ dùng brew để quản lý vài cài đặt Kafka nhé. Nếu bạn chưa cài đặt Homebrew, bạn có thể cài đặt thông qua lệnh sau:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Sau khi đã có Homebrew, chúng ta có thể cài đặt Kafka rồi

brew install kafka

Nhờ Homebrew, mà quá trình cài đặt sẽ tiến hành bao gồm cả những package mà Kafka cần để chạy, bạn sẽ không cần cài riêng những package đó nữa

Tùy vào loại chip mà máy Mac của bạn đang sử dụng, Kafka sẽ được cài mặc định vào các thư mục như sau:

  • Binaries and scripts để chạy Kafka:
    • Chip Intel: /usr/local/Cellar
    • Chip Apple silicon: /opt/homebrew/Cellar
  • Kafka configurations:
    • Chip Intel: /usr/local/etc/kafka
    • Chip Apple silicon: /opt/homebrew/etc/kafka

Trong các thư mục này, bạn sẽ tìm thấy những thông tin cấu hình của Kafka ở bên trong thư mục kafka/[version]/bin

Ví dụ, mình dùng Chip Apple solicon và phiên bản mình đang sử dụng là 3.9.0, thì thông tin cấu hình sẽ ở đường dẫn: opt/homebrew/Cellar/kafka/3.9.0/bin

image.png

Cuối cùng, mình sẽ thêm PATH vào .zshrc bằng lệnh vim ~/.zshrcđể tiện cho quá trình dùng lệnh Kafka nhé (nếu bạn không dùng thì có thể bỏ qua bước này)

export PATH="/opt/homebrew/opt/kafka/bin:$PATH"

2. Khởi động Kafka với Zookeeper

Mình sẽ làm trên Mac với Apple Silicon. Với Chip Intel, các bạn có thể thay thế đường dẫn tương tự nhé. Chúng ta sẽ cần 2 terminals cho việc chạy Zookeeper và Kafka

  • Khởi động Zookeeper
zookeeper-server-start /opt/homebrew/etc/kafka/zookeeper.properties
  • Khởi động Kafka
kafka-server-start /opt/homebrew/etc/kafka/server.properties

3. Khởi động Kafka với KRaft

Như đã đề cập ở bài trước, với Kafka phiên bản 3.x trở đi, chúng ta sẽ không cần dùng Zookeeper nữa, mà có thể chạy Kafka với KRaft với chỉ 1 terminal

  • Trước tiên, chúng ta sẽ cần tạo 1 Cluster ID:
kafka-storage random-uuid

Kết quả sẽ trả cho chúng ta 1 Cluster ID. Ví dụ: 0FwADRY4TV29vfWouepIqA

  • Tiếp theo, chúng ta sẽ định dạng storage bằng lệnh sau:
kafka-storage format -t <uuid> -c /opt/homebrew/etc/kafka/kraft/server.properties

Bạn nhớ thay <uuid> bằng UUID mà chúng ta đã tạo ở trước đó nhé. Nếu thành công, bạn sẽ thấy 1 dòng tương tự như bên dưới xuất hiện trên terminal:

Formatting metadata directory /opt/homebrew/var/lib/kraft-combined-logs with metadata.version 3.9-IV0.
  • Bây giờ, chúng ta có thể khởi động Kafka bằng lệnh sau:
kafka-server-start /opt/homebrew/etc/kafka/kraft/server.properties

4. Linux và Windows

Với 2 hệ điều hành Linux và Windows, các bạn có thể tham khảo thêm tại đây nhé:

Ngoài ra, bạn cũng có thể xem về cách cài đặt cũng như khởi động Kafka bằng Docker nhé: https://learn.conduktor.io/kafka/how-to-start-kafka-using-docker/

Hẹn gặp lại các bạn ở bài sau, chúng ta sẽ bắt đầu tìm hiểu về Kafka CLI nha

Một lần nữa, đừng quên connect với mình để cùng trao đổi nhé

Bình luận

Bài viết tương tự

- vừa được xem lúc

001: Message-driven programming với Message broker và Apache Kafka

Bài viết nằm trong series Apache Kafka từ zero đến one. . . Asynchronous programming.

0 0 168

- vừa được xem lúc

002: Apache Kafka topic, partition, offset và broker

Bài viết nằm trong series Apache Kafka từ zero đến one. Nói qua về lịch sử, Kafka được phát triển bởi LinkedIn (các anh em dev chắc chẳng xa lạ gì) và viết bằng ngôn ngữ JVM, cụ thể là Java và Scala.

0 0 158

- vừa được xem lúc

003: Gửi và nhận message trong Apache Kafka

Bài viết nằm trong series Apache Kafka từ zero đến one. . . Nếu muốn các message được lưu trên cùng một partition để đảm bảo thứ tự thì làm cách nào.

0 0 226

- vừa được xem lúc

004: Apache Kafka consumer offset, Broker discovery và Zookeeper

Bài viết nằm trong series Apache Kafka từ zero đến one. 1) Consumer offset.

0 0 133

- vừa được xem lúc

Change account

Tài khoản cũ của mình có chút vấn đề nên mình chuyển sang dùng tài khoản mới để viết bài. Xin cảm ơn mọi người.

0 0 33

- vừa được xem lúc

[MSDP] - Event Carried State Transfer

Trong hướng dẫn này, chúng ta cùng tìm hiểu về Microservice Desin Pattern - Event Carried State Transfer (chuyển trạng thái theo sự kiện) để đạt được sự nhất quán về dữ liệu giữa các microservice. Tro

0 0 36