Apache Kafka - Nguyên tắc cơ bản

Trước khi đi sâu vào Kafka, bạn phải biết các thuật ngữ chính như chủ đề, nhà môi giới, nhà sản xuất và người tiêu dùng. Sơ đồ sau minh họa các thuật ngữ chính và bảng mô tả chi tiết các thành phần của sơ đồ.

Trong sơ đồ trên, một chủ đề được cấu hình thành ba phân vùng. Phân vùng 1 có hai hệ số bù 0 và 1. Phân vùng 2 có bốn hệ số bù 0, 1, 2 và 3. Phân vùng 3 có một hệ số bù 0. Id của bản sao giống với id của máy chủ lưu trữ nó.

Giả sử, nếu hệ số nhân bản của chủ đề được đặt thành 3, thì Kafka sẽ tạo ra 3 bản sao giống hệt nhau của mỗi phân vùng và đặt chúng vào cụm để sẵn sàng cho tất cả các hoạt động của nó. Để cân bằng tải trong cụm, mỗi nhà môi giới lưu trữ một hoặc nhiều phân vùng đó. Nhiều nhà sản xuất và người tiêu dùng có thể xuất bản và truy xuất các thông điệp cùng một lúc.

S. không Các thành phần và mô tả
1

Topics

Một luồng thông báo thuộc một danh mục cụ thể được gọi là chủ đề. Dữ liệu được lưu trữ trong các chủ đề.

Các chủ đề được chia thành các phân vùng. Đối với mỗi chủ đề, Kafka giữ một phân vùng nhỏ. Mỗi phân vùng như vậy chứa các thông điệp trong một trình tự có thứ tự bất biến. Một phân vùng được triển khai dưới dạng một tập hợp các tệp phân đoạn có kích thước bằng nhau.

2

Partition

Chủ đề có thể có nhiều phân vùng, vì vậy nó có thể xử lý một lượng dữ liệu tùy ý.

3

Partition offset

Mỗi thông báo được phân vùng có một id chuỗi duy nhất được gọi là offset .

4

Replicas of partition

Bản sao không là gì ngoài bản sao lưu của một phân vùng. Bản sao không bao giờ đọc hoặc ghi dữ liệu. Chúng được sử dụng để ngăn chặn mất dữ liệu.

5

Brokers

  • Môi giới là hệ thống đơn giản chịu trách nhiệm duy trì dữ liệu được công khai. Mỗi nhà môi giới có thể có không hoặc nhiều phân vùng cho mỗi chủ đề. Giả sử, nếu có N phân vùng trong một chủ đề và N số nhà môi giới, mỗi nhà môi giới sẽ có một phân vùng.

  • Giả sử nếu có N phân vùng trong một chủ đề và nhiều hơn N môi giới (n + m), N môi giới đầu tiên sẽ có một phân vùng và M môi giới tiếp theo sẽ không có bất kỳ phân vùng nào cho chủ đề cụ thể đó.

  • Giả sử nếu có N phân vùng trong một chủ đề và ít hơn N môi giới (nm), mỗi nhà môi giới sẽ có một hoặc nhiều phân vùng chia sẻ giữa chúng. Kịch bản này không được khuyến nghị do phân bổ tải không đồng đều giữa các nhà môi giới.

6

Kafka Cluster

Kafka có nhiều hơn một nhà môi giới được gọi là Kafka cluster. Một cụm Kafka có thể được mở rộng mà không cần thời gian chết. Các cụm này được sử dụng để quản lý tính bền vững và sao chép của dữ liệu tin nhắn.

7

Producers

Nhà sản xuất là người phát hành thông báo cho một hoặc nhiều chủ đề Kafka. Các nhà sản xuất gửi dữ liệu đến các nhà môi giới Kafka. Mỗi khi nhà sản xuất pub-lishes một tin nhắn cho một nhà môi giới, nhà môi giới chỉ cần thêm thông báo vào tệp phân đoạn cuối cùng. Trên thực tế, thông báo sẽ được thêm vào một phân vùng. Nhà sản xuất cũng có thể gửi tin nhắn đến một phân vùng mà họ lựa chọn.

số 8

Consumers

Người tiêu dùng đọc dữ liệu từ các nhà môi giới. Người tiêu dùng đăng ký một hoặc nhiều chủ đề và sử dụng các thông điệp đã xuất bản bằng cách lấy dữ liệu từ các nhà môi giới.

9

Leader

Leader là nút chịu trách nhiệm cho tất cả các lần đọc và ghi cho phân vùng đã cho. Mỗi phân vùng có một máy chủ hoạt động như một nhà lãnh đạo.

10

Follower

Nút tuân theo hướng dẫn của người lãnh đạo được gọi là người theo dõi. Nếu người lãnh đạo không thành công, một trong những người đi theo sẽ tự động trở thành người lãnh đạo mới. Một người theo dõi hoạt động như một người tiêu dùng bình thường, lấy tin nhắn và cập nhật kho dữ liệu của chính họ.