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

Kafka Fundamental - Bài 6: Zookeeper and Kafka KRaft

0 0 2

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é:

Ở bài viết này, chúng ta sẽ tìm hiểu về Zookeeper và Kafka Raft nhé

1. Zookeeper

Zookeeper là một phần mềm đóng vai trò giữ danh sách và quản lý Kafka Brokers. Nó cũng cực kỳ hữu dụng trong trường hợp nếu bất kì Broker Leader nào gặp sự cố, nó sẽ tiến hành chọn ra Leader mới (Leader Election)

Ngoài ra, khi có sự thay đổi, Zookeeper cũng sẽ gửi thông báo đến Kafka Broker. Ví dụ như khi 1 Topic mới được khởi tạo hay bị xoá, hoặc khi 1 Broker nào đó down/up

Như vậy, Zookeeper có rất nhiều Kafka metadata.

Tuy nhiên, bạn sẽ cần lưu ý về phiên bản của Kafka khi sử dụng với Zookeeper nhé

  • Kafka phiên bản 2.x: Không thể hoạt động nếu không có Zookeeper
  • Kafka phiên bản 3.x: Có thể hoạt động mà không cần đến Zookeeper. Thay vào đó, sẽ dùng Kafka Raft
  • Kafka phiên bản 4.x trở đi: Zookeeper không còn được sử dụng cùng Kafka nữa

Zookeeper cũng được thiết kế để hoạt động với số Server là số lẻ (1,3,,5,7…). Nó cũng có khái niệm về Leader và Follower.

Zookeeper sẽ không chứa bất kỳ Offset nào của Consumer từ phiên bản 0.10 trở đi

image.png

Ở hình ảnh minh hoạ trên, ta sẽ có 3 Zookeeper Server. Server thứ 2 được xem là Leader. Hai Server 1 và 3 đều là Follower. Tất cả chúng đều kết nối đến Brokers

2. Chúng ta có nên sử dụng Zookeeper không?

Câu trả lời sẽ là nếu bạn muốn quản lý Brokers trên Kafka Server cho những phiên bản < 4.0. Thực tế đã có những dự án đã dùng trước đây, thì chúng ta phải biết về nó

Tuy nhiên, với Kafka Client, chúng ta sẽ không cần sử dụng Zookeeper, bởi Kafka Client và CLI đã được chuyển đổi để chỉ sử dụng các Kafka Brokers làm điểm kết nối thay vì Zookeeper

Và kể từ Kafka phiên bản 2.2, lệnh kafka-topics cũng đã được thay đổi để chỉ tham chiếu đến các Kafka Broker thay vì Zookeeper. Lý do là vì trong tương lai, khi Kafka không còn phụ thuộc vào Zookeeper, thì các client vẫn sẽ hoạt động bình thường. Một phần cũng vì chúng được xem kém bảo mật hơn so với Kafka

3. Kafka KRaft

Vào năm 2020, Apache Kafka bắt đầu dự án xoá Zookeeper khỏi Kafka dependency. Họ đã nhận ra vấn đề về việc mở rộng Kafka với Zookeeper khi số lượng Partition lớn hơn 100,000. Với việc xoá Zookeeper, Kafka trở nên dễ bảo trì, cài đặt hơn, và có thể mở rộng lên đến hàng triệu Partitions

Cũng nhờ đó, về tính bảo mật, chúng ta sẽ chỉ cần quan tâm đến Kafka thôi. Hiển nhiên, việc loại bỏ này cũng làm cho quá trình tắt Controller và thời gian phục hồi được giảm xuống.

Từ phiên bản 3.X, Kafka đã giới thiệu KRaft để thay thế cho Zookeeper. Tuy nhiên, với Production, nó sẽ có thể sử dụng từ phiên bản Kafka 3.3.1 (Tất nhiên, Zookeeper vẫn còn được giữ lại)

Từ phiên bản 4.X trở đi, Kafka được release mà chỉ có Kafka KRaft, sẽ không còn Zookeeper nữa

image.png

Như các bạn thấy ở hình minh hoạ trên, với Quorum Controller của KRaft, việc quản lý Brokers đã trông đơn gian hơn nhiều. Kafka KRaft cũng cho thấy sự nổi trội của mình về hiệu suất image.png

Như biểu đồ này, ta có thể thấy, với 2 triệu Partitions, thời gian cho việc tắt Controller và thời gian phục hồi giảm đi rất rất nhiều

4. Tổng kết

Như vậy, ở bài này, chúng ta đã tìm hiểu về Zookeeper và Kafka KRaft. Rõ ràng, KRaft có nhiều ưu điểm vượt trội hơn. Và chúng ta sẽ tìm hiểu sâu hơn về sau nhé.

Bài viết này cũng đã kết thúc phần 1 của Series, là phần cơ bản nhất về Kafka. Ở những phần tiếp theo, chúng ta sẽ đi sâu hơn về phần làm việc với Kafka nhé. Hẹn gặp lại mọi người

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

Kafka những khái niệm, thuật ngữ và giải thích bài bản

Xin chào anh em đã tới hoặc quay trở lại với Series vén màn sự thật về Apache Kafka của mình. Nếu có anh em nào lần đầu tới đây thì anh em có thể đọc từ đầu series từ đây link .

0 0 23

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

Kafka không cần Zookeeper? Kafka Kraft mode

Mở đầu. Các bạn nếu đã từng làm việc với Kafka thì sẽ quen với mô hình sử dụng Zookeeper với Kafka.

0 0 27

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

Cài đặt, cấu hình Zookeeper và Kafka trên Ubuntu 20.04 chi tiết

Hello tất cả anh chị em, đã lâu rồi mình chưa gặp nhau, à nhầm đã lâu rồi mình mới ra bài. Chào mừng đã tới hoặc quay trở lại với Series vén màn sự thật về Apache Kafka của mình.

0 0 23

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

Kafka Connect là gì? Mình đã dùng Kafka Connect để đồng bộ dữ liệu như thế nào? (Phần 1)

Xin chào anh đã quay trở lại, nếu là lần đầu thì anh em có thể xem từ đầu Series của mình ️ tại đây. Tiếp tục hôm nay mình sẽ giới thiệu 1 thành phần trong Apache Kafka mà có thể ít ae biết tới và sử

0 0 24

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

Cài đặt Kafka Cluster cho môi trường Production, Sử dụng Kafdrop UI để View và thao tác

Hello mọi người tiếp tục Series vén màn sự thật về Kafka của mình Link ️️️ tại đây dành cho ace mới đọc bài viết của mình lần đầu. Bài này cần ae phải đã cài đặt được một Single Node của Kafka thì sẽ

0 0 22

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

Kafka - Tạo topic, publish/subcribe message (Part 3)

Hellu, Toni Dev đây . Ở part 2 thì chúng ta đã cùng nhau tìm hiểu về Partition, Offset & Consumer Group trong series Kafka.

0 0 18