2014-11-26 17 views

Trả lời

8

Khi bạn thêm thư vào chủ đề, bạn gọi phương thức gửi (KeyedMessage message) của API nhà sản xuất. Điều này có nghĩa là tin nhắn của bạn chứa khóa và giá trị. Khi bạn tạo một chủ đề, bạn chỉ định số phân vùng bạn muốn nó có. Khi bạn gọi phương thức "gửi" cho chủ đề này, dữ liệu sẽ được gửi đến chỉ một phân vùng cụ thể dựa trên giá trị băm của khóa của bạn (theo mặc định). Mỗi phân vùng có thể có một bản sao, có nghĩa là cả hai phân vùng và bản sao của nó lưu trữ cùng một dữ liệu. Hạn chế là cả nhà sản xuất và người tiêu dùng của bạn chỉ làm việc với bản sao chính và các bản sao của nó chỉ được sử dụng để dự phòng.

Tham khảo tài liệu: http://kafka.apache.org/documentation.html#producerapi Và một huấn luyện cơ bản: http://www.slideshare.net/miguno/apache-kafka-08-basic-training-verisign

+0

OK .. cảm ơn !! –

4

chủ đề được phân chia trên nhiều nút do đó, một chủ đề có thể phát triển vượt ra ngoài giới hạn của một nút. Phân vùng được nhân rộng để chịu lỗi. Nhân rộng và lãnh đạo tiếp quản là một trong những khác biệt lớn nhất giữa Kafka và các nhà môi giới/Flume khác. Từ số Apache Kafka site:

Mỗi phân vùng có một máy chủ hoạt động như "máy chủ" và số không hoặc nhiều máy chủ hoạt động như "người theo dõi". Người lãnh đạo xử lý tất cả các yêu cầu đọc và viết cho phân vùng trong khi người theo dõi thụ động sao chép người lãnh đạo. Nếu người lãnh đạo thất bại, một trong số những người theo dõi sẽ tự động trở thành người lãnh đạo mới . Mỗi máy chủ hoạt động như một người dẫn đầu cho một số phân vùng của nó và một người theo dõi cho những người khác để tải cũng được cân bằng trong cụm.

+0

Cảm ơn .. lời giải thích rất hay ... –

4

Hai tính năng quan trọng khác của Kafka là tính song song và dự phòng. Kafka xử lý việc này bằng cách cho mỗi chủ đề một số phân vùng và bản sao nhất định.

Partitions

phân vùng: Một mảnh duy nhất của một chủ đề Kafka. Số lượng phân vùng có thể định cấu hình theo từng chủ đề. Thêm phân vùng cho phép tuyệt đối song song khi đọc từ các chủ đề. Số lượng phân vùng xác định số lượng người tiêu dùng bạn có trong nhóm người tiêu dùng. Ví dụ, nếu một chủ đề có 3 phân vùng, bạn có thể có 3 người tiêu dùng trong một nhóm người tiêu dùng cân bằng tiêu thụ giữa các phân vùng. Bằng cách này bạn có một song song của 3. Số phân vùng này là hơi khó để xác định cho đến khi bạn biết làm thế nào nhanh chóng bạn đang sản xuất dữ liệu và nhanh như thế nào bạn đang tiêu thụ dữ liệu. Nếu bạn có một chủ đề mà bạn biết sẽ có khối lượng cao, bạn sẽ cần phải có nhiều phân vùng hơn.

bản sao

bản sao: Đây là bản sao của phân vùng. Họ không bao giờ được viết hoặc đọc. Mục đích duy nhất của họ là để dự phòng dữ liệu. Nếu chủ đề của bạn có n bản sao, các nhà môi giới n-1 có thể thất bại trước khi có bất kỳ mất mát dữ liệu nào. Ngoài ra, bạn không thể có một chủ đề một nhân tố lớn hơn số lượng các nhà môi giới mà bạn có. Ví dụ, bạn có 5 nhà môi giới Kafka, bạn có thể có một chủ đề với hệ số nhân rộng tối đa là 5, và 5-1 = 4 nhà môi giới có thể đi xuống trước khi có bất kỳ mất mát dữ liệu nào.

Các vấn đề liên quan