ZOOKEEPER LÀ GÌ

  -  

Kafka là 1 trường đoản cú ngữ tương đối thông dụng trong hầu hết các lĩnh vực nghề trực thuộc nghành nghề dịch vụ công nghiệp ngày này. Đa số đa số chủ thể số 1 bên trên trái đất hầu hết đã sử dụng kafka vào nền tảng cơ sở hạ tầng của bản thân mình. Nhưng thắc mắc đề ra nó là gì cùng sức ảnh hưởng của nó ra sao?

Kafka là gì?

Kafka là nền tảng streaming phân tán, hoàn toàn có thể không ngừng mở rộng cùng là thành phầm mã nguồn mlàm việc. Dự án Kafka ban sơ được cải tiến và phát triển vì chưng Linkedin sau đó biến chuyển dự án Apađậy mã nguồn mnghỉ ngơi vào năm 2011. Kafka được viết bởi ngôn từ Scala cùng Java. Nó được viết ra nhằm mục đích cung cấp một căn nguyên mà gồm độ trễ phải chăng và thông lượng cao cho vấn đề xử lý những nguồn cung cấp tài liệu theo thời gian thực.

Bạn đang xem: Zookeeper là gì

Quý khách hàng vẫn xem: Zookeeper là gìQuý khách hàng sẽ xem: Zookeeper là gì

Kafka vận động như vậy nào?

Kafka được kiến thiết dựa vào mô hình publish/subcribe, tựa như nlỗi bất kỳ khối hệ thống message làm sao không giống. Các áp dụng (đóng vai trò là producer) gửi những messages (records) cho tới một node kafka (broker) cùng nói rằng những messages này sẽ được xử lý vì các ứng dụng không giống điện thoại tư vấn là consumers. Các messages được gửi trao kafka node sẽ tiến hành lưu trữ vào một nơi hotline là topic và tiếp nối consumer hoàn toàn có thể subcribe tới topic đó với lắng tai gần như messages này. Messages rất có thể là bất kể công bố gì nhỏng quý hiếm cảm ứng, hành vi người tiêu dùng,…


*

Topic hoàn toàn có thể được coi như như thể thương hiệu của một hạng mục nhưng mà những messages sẽ được tàng trữ cùng được đẩy vào.

Partition

Topics vào kafka rất có thể gồm form size rất to lớn, như vậy không nên tàng trữ toàn bộ dữ liệu của một topic trên một node, dữ liệu bắt buộc đươc phân loại ra thành những partition sẽ giúp đỡ bảo toàn dữ liệu tương tự như xử trí dữ liệu tiện lợi rộng. Partitions cho phép bọn họ thực hiện subcribe tuy nhiên tuy nhiên cho tới một topic ví dụ bằng cách phân loại tài liệu trong một topic rõ ràng ra cho những broker không giống nhau (kafka node), từng partition rất có thể được đặt trên một thứ riêng biệt – được cho phép các consumer gọi dữ liệu xuất phát từ 1 topic ra mắt một cách song song.

Để tăng tính khả dụng (availability) của partition, từng partition cũng có quý hiếm replicas của riêng nó. Để dễ dàng nắm bắt hơn về kafka, mình đã trình diễn bằng ví dụ với 3 node/broker.

Bây tiếng, một topic sẽ được chia nhỏ ra thành 3 partitions cùng từng broker sẽ có một phiên bản copy của partition. Trong số rất nhiều bạn dạng copy partition này, sẽ sở hữu được một bạn dạng copy được thai chọn có tác dụng leader, trong những lúc đa số bạn dạng copy khác chỉ triển khai đồng nhất dữ liệu cùng với partition leader.


*

Tất cả những hành vi ghi và gọi tới một topic sẽ phần đông buộc phải trải qua partition leader khớp ứng với leader sẽ phối kết hợp nhằm update dữ liệu new tới các replica parition không giống. Nếu leader bị hư, một trong những replica partition sẽ phụ trách mục đích là một leader mới.


*

Để một producer/consumer ghi/phát âm message xuất phát từ 1 partition, chắc chắn rằng bọn chúng cần phải biết leader là ai đề nghị không? tin tức này rất cần được tất cả sẵn tại 1 địa chỉ nào kia.

Kafka lưu trữ đông đảo thông tin điều này là metadata vào một hình thức hotline là Zookeeper.

Cấu trúc tài liệu log trong Kafka

Chìa khóa chủ yếu mang đến tài năng mở rộng với công suất của kafka đó là log. Thông thường những developer Lúc new tiếp cận kafka cảm giác tương đối rối Lúc lần thứ nhất nghe đến “log“, chính vì bọn họ hay đọc “log” chính là thuật nghữ được sử dụng trong log vận dụng. Tuy nhiên, mọi gì mình vẫn nói ở đây, là cấu trúc tài liệu log. Log là một trong những cấu tạo dữ liệu gồm sản phẩm từ đồng bộ mà lại chỉ cung ứng dạng nối thêm (append). Quý Khách chẳng thể sửa đổi tuyệt xóa các records trường đoản cú nó. Nó được đọc tự trái quý phái bắt buộc với được bảo vệ thứ tự các thành quả.


*

Một mối cung cấp tài liệu đang ghi message vào log với một hoặc nhiều consumer không giống đang phát âm message từ bỏ log trên thời gian họ chọn lựa.

Xem thêm: Restock Là Gì ? Những Điều Cần Biết Khi Mua Quần Áo, Giày Những Điều Cần Biết Khi Mua Hàng Restock

Parsistence data trong Kafa

Kafka tàng trữ tất cả message vào disk (không thể lưu lại trên RAM) cùng được bố trí có lắp thêm trường đoản cú trong cấu tạo log có thể chấp nhận được kafka tận dụng buổi tối nhiều tài năng phát âm và ghi lên disk một biện pháp tuần trường đoản cú.

Nó là một trong những cách chọn lọc khá thông dụng nhằm tàng trữ dữ liệu trên disk nhưng vẫn có thể thực hiện về tối nhiều hóa tính năng, tất cả một số nguyên do chính bên dưới đây:

Kafka nhờ vào tương đối nhiều vào pagecabít của hệ điều hành cho Việc lưu trữ tài liệu, áp dụng RAM trên máy một bí quyết tác dụng.Kafka lưu trữ những messages dưới định hình nhị phân xuyên thấu quy trình (producer > broker > consumer), tạo cho nó có thể tận dụng tối ưu hóa kĩ năng zero-copy. Nghĩa là lúc hệ quản lý điều hành copy dữ liệu tự pagecabít thẳng quý phái socket, trọn vẹn bỏ qua mất ứng dụng trung gian là kafka.Đọc/ghi tài liệu tuyến tính bên trên disk nkhô hanh. Vấn đề tạo cho disk chậm trễ bây chừ thường là vì quá trình tra cứu kiếm bên trên disk nhiều lần. Kafka hiểu và ghi trên disk đường tính, cho nên nó có thể tận dụng tối đa về tối nhiều hóa hiệu suất bên trên disk.

Consumer với Consumer Group

Consumer hiểu các messages trường đoản cú bất kỳ partition làm sao, cho phép bạn không ngừng mở rộng lượng message được thực hiện tương tự như nlỗi giải pháp những producer cung cấp message.

Consumer cũng khá được tổ chức triển khai thành các consumer groups cho 1 topic cụ thể – mỗi consumer bên phía trong group gọi message từ 1 partition độc nhất vô nhị, nhằm tách câu hỏi bao gồm 2 consumer cùng xử trí gọi cùng một message gấp đôi cùng toàn cục group cách xử trí toàn bộ các message trường đoản cú toàn thể topic.

Nếu bạn tất cả số consumer > số partition, khi ấy một số trong những consumer vẫn làm việc chính sách nhàn nhã chính vì bọn chúng không có partition nào để cách xử lý.Nếu chúng ta gồm số partition > số consumer, khi ấy consumer sẽ nhận những message từ khá nhiều partition. Nếu bạn tất cả số consumer = số partition, mỗi consumer đang phát âm message theo trang bị tự từ một partition.

Để dễ hiểu hơn, các bạn xem qua hình ảnh dưới đây


*

Trong tấm hình ở trên, Server 1 duy trì partition 0 cùng 3 với VPS 2 giữ những partition 1 và 2. Chúng ta tất cả 2 consumer groups là A với B. Group A bao gồm 2 consumer cùng group B gồm 4 consumer. Consumer group A bao gồm 2 consumer, vậy phải từng consumer đã hiểu message tự 2 partition.Trong consumer group B, số lượng consumer bằng số partition yêu cầu từng consumer vẫn phát âm message từ là một partition.

Kafka tuân theo các nguyên tắc được cung cấp vì broker cùng consumer. Nghĩa là kafka không tuân theo dõi những record được phát âm vì consumer cùng vì vậy lừng chừng gì về hành động của consumer. Việc giữ giàng những messages vào một khoảng chừng thời hạn được cấu hình trước và nó tùy nằm trong vào consumer, nhằm điều chỉnh thời gian làm sao để cho phù hợp. Bản thân consumer đã dò la coi Kafa bao gồm message làm sao bắt đầu hay không và mang lại Kafka biết những record làm sao bọn chúng mong muốn phát âm. Điều này được cho phép chúng tăng/giảm offmix mà consumer ao ước, cho nên nó rất có thể hiểu lại những message đã làm được hiểu rồi cùng tái giải pháp xử lý các sự kiện vào ngôi trường đúng theo gặp gỡ sự vậy.

Ví dụ: ví như Kafka được thông số kỹ thuật để giữ các messages sống thọ vào một ngày cùng consumer bị down lâu dài hơn một ngày, lúc ấy consumer vẫn mất message. Tuy nhiên, ví như consumer chỉ bị down trong tầm 1 tiếng đồng hồ đeo tay, lúc đó nó trọn vẹn rất có thể bắt đầu đọc lại message từ bỏ offmix mới nhất.

Vai trò của Zookeeper

Zookeeper vào vai trò là khu vực lưu trữ tài liệu phân tán dạng key-value. Nó được tối ưu hóa đến tác vụ phát âm nkhô nóng nhưng lại ghi chậm rãi. Kafka thực hiện Zookeeper nhằm tiến hành Việc thai lựa chọn leader của Kafka broker cùng topic partition. Zookeeper cũng có thiết kế đến kỹ năng chịu lỗi cao, cho nên vì thế Kafka nhờ vào tương đối nhiều vào Zookeeper.

Xem thêm: Piezoelectric Là Gì - Từ Điển Tiếng Việt Áp Điện Là Gì

Nó cũng được thực hiện để lưu trữ tất cả metadata nhỏng là:

Offmix cho mỗi partition của consumer groupACL (Access control list) – được áp dụng cho câu hỏi giới hạn truy cập/ủy quyềnQuota của consumer/producer – số lượng message về tối nhiều mỗi giâyPartition Leader với tâm lý của chúng

Kết luận

Kafka sẽ gấp rút vươn lên là lao động chính của mặt đường ống tài liệu đối với bất kỳ tổ chức như thế nào. Kafka được cho phép các bạn có một lượng to các messages đi sang 1 phương tiện đi lại triệu tập cùng tàng trữ chúng nhưng không cần phải băn khoăn lo lắng gì về rất nhiều vụ việc như năng suất xuất xắc mất mát tài liệu. Kafka hoàn toàn có thể là nhân tố trung tâm vào quy mô kiến trúc phía sự kiện (event-driven) và cho phép các bạn phân tách bóc thân vận dụng này cùng với vận dụng khác.