ZOOKEEPER LÀ GÌ
Kafka là 1 từ ngữ tương đối thông dụng trong số đông các lĩnh vực nghề ở trong nghành công nghiệp ngày này. Đa số hầu như cửa hàng số 1 bên trên quả đât các đã áp dụng kafka trong nền tảng gốc rễ hạ tầng của bản thân. Nhưng câu hỏi đề ra nó là gì và mức độ ảnh hưởng của chính nó ra sao?
Kafka là gì?
Kafka là căn nguyên streaming phân tán, có thể không ngừng mở rộng cùng là sản phẩm mã nguồn mlàm việc. Dự án Kafka ban đầu được trở nên tân tiến bởi vì Linkedin sau đó phát triển thành dự án công trình Apabít mã nguồn msống 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 mục đích cung ứng một nền tảng gốc rễ mà có độ trễ thấp cùng thông lượng cao mang lại việc cách xử trí những nguồn cấp tài liệu theo thời hạn thực.
Bạn đang xem: Zookeeper là gì
Quý Khách đang xem: Zookeeper là gì
Kafka vận động như vậy nào?
Kafka được phát hành dựa trên mô hình publish/subcribe, tựa như như ngẫu nhiên khối hệ thống message làm sao khác. Các ứng dụng (vào vai trò là producer) gửi những messages (records) cho tới một node kafka (broker) và bảo rằng số đông messages này sẽ được cách xử lý bởi những ứng dụng không giống Call là consumers. Các messages được gửi tặng kafka node sẽ được lưu trữ vào một địa điểm gọi là topic cùng tiếp nối consumer rất có thể subcribe tới topic đó cùng lắng tai mọi messages này. Messages rất có thể là bất kể báo cáo gì nlỗi cực hiếm cảm biến, hành vi người tiêu dùng,…

Topic có thể được xem như thể thương hiệu của một hạng mục cơ mà những messages sẽ được tàng trữ và được đẩy vào.
Partition
Topics vào kafka có thể gồm size không hề nhỏ, điều đó tránh việc lưu trữ toàn bộ tài liệu của một topic trên một node, dữ liệu phải đươc phân chia ra thành những partition sẽ giúp bảo toàn dữ liệu cũng giống như xử trí tài liệu dễ ợt hơn. Partitions cho phép bọn họ triển khai subcribe tuy nhiên tuy nhiên tới một topic ví dụ bằng phương pháp phân chia tài liệu trong một topic ví dụ ra đến các broker khác biệt (kafka node), từng partition có thể được ném lên một vật dụng riêng lẻ – có thể chấp nhận được các consumer gọi tài liệu xuất phát từ 1 topic diễn ra một biện pháp tuy nhiên song.
Để tăng tính khả dụng (availability) của partition, từng partition cũng có thể có giá trị replicas của riêng rẽ nó. Để dễ hiểu hơn về kafka, mình đã trình bày bằng ví dụ với 3 node/broker.
Bây giờ đồng hồ, một topic sẽ được chia nhỏ ra thành 3 partitions và từng broker sẽ sở hữu được một bản copy của partition. Trong số phần đông bản copy partition này, sẽ có được một phiên bản copy được thai lựa chọn làm leader, trong khi phần nhiều phiên bản copy không giống chỉ triển khai đồng điệu dữ liệu với partition leader.

Tất cả các hành động ghi và phát âm tới một topic đang hồ hết buộc phải đi qua partition leader tương ứng cùng leader sẽ phối hợp để update tài liệu new cho tới những replica parition khác. Nếu leader bị hỏng, một trong các replica partition sẽ đảm nhiệm phương châm là 1 trong leader mới.

Để một producer/consumer ghi/hiểu message từ 1 partition, chắc chắn chúng cần biết leader là ai bắt buộc không? Thông tin này cần được gồm sẵn tại một địa chỉ nào kia.
Kafka tàng trữ hầu như báo cáo những điều đó là metadata vào một các dịch vụ Call là Zookeeper.
Cấu trúc tài liệu log vào Kafka
Chìa khóa bao gồm dẫn tới khả năng không ngừng mở rộng cùng hiệu suất của kafka đó là log. Thông thường các developer Khi bắt đầu tiếp cận kafka cảm thấy tương đối rối khi lần thứ nhất tìm đến “log“, cũng chính vì chúng ta thường gọi “log” chính là thuật nghữ được áp dụng trong log vận dụng. Tuy nhiên, đa số gì bản thân đang nói ở đây, là kết cấu tài liệu log. Log là một trong kết cấu dữ liệu tất cả sản phẩm từ bỏ đồng hóa cơ mà chỉ cung ứng dạng nối thêm (append). Bạn quan yếu sửa đổi giỏi xóa các records từ nó. Nó được gọi từ trái sang đề nghị và được đảm bảo an toàn sản phẩm tự các nhà cửa.

Một mối cung cấp dữ liệu đã ghi message vào log cùng một hoặc nhiều consumer không giống đang hiểu message từ log tại thời khắc chúng ta tuyển lựa.
Mỗi entry trong log được định danh vày một con số Điện thoại tư vấn là offmix, tuyệt nói một biện pháp dễ nắm bắt rộng, offmix y như chỉ số tuần trường đoản cú vào một array vậy.
Xem thêm: Hướng Dẫn Mua Xe Fixed Gear Là Gì, Xe Đạp Fixed Gear
Parsistence data trong Kafa
Kafka tàng trữ tất cả message vào disk (không thể giữ bên trên RAM) cùng được thu xếp có thứ từ bỏ vào cấu trúc log chất nhận được kafka tận dụng tối nhiều kĩ năng hiểu và ghi lên disk một phương pháp tuần từ bỏ.
Nó là một cách lựa chọn khá phổ cập nhằm lưu trữ tài liệu bên trên disk mà lại vẫn rất có thể sử dụng buổi tối nhiều hóa tính năng, bao gồm một số nguyên do chính dưới đây:
Kafka phụ thuộc vào khá nhiều vào pagecache của hệ quản lý và điều hành cho bài toán lưu trữ tài liệu, sử dụng RAM trên trang bị một phương pháp hiệu quả.Kafka lưu trữ các messages dưới định dạng nhị phân xuyên suốt quá trình (producer > broker > consumer), khiến cho nó rất có thể tận dụng tối đa tối ưu hóa năng lực zero-copy. Nghĩa là lúc hệ điều hành copy tài liệu trường đoản cú pagecabịt trực tiếp quý phái socket, trọn vẹn bỏ qua vận dụng trung gian là kafka.Đọc/ghi tài liệu tuyến tính bên trên disk nhanh khô. Vấn đề khiến cho disk lờ lững bây chừ thường xuyên là vì quy trình tìm kiếm tìm trên disk nhiều lần. Kafka phát âm cùng ghi bên trên disk con đường tính, vì vậy nó có thể tận dụng tối đa buổi tối đa hóa hiệu suất bên trên disk.Consumer và Consumer Group
Consumer gọi những messages trường đoản cú bất kỳ partition nào, có thể chấp nhận được bạn không ngừng mở rộng lượng message được thực hiện tương tự như nhỏng phương pháp các producer cung ứng message.
Consumer cũng khá được tổ chức thành những consumer groups cho một topic cụ thể – từng consumer bên trong group gọi message xuất phát điểm từ 1 partition độc nhất, nhằm tránh Việc tất cả 2 consumer thuộc cách xử lý phát âm và một message 2 lần với toàn thể group xử trí tất cả những message từ tổng thể topic.
Nếu bạn tất cả số consumer > số partition, khi ấy một số consumer đã sống chế độ nhàn rỗi chính vì chúng không có partition làm sao để cách xử lý.Nếu chúng ta tất cả số partition > số consumer, lúc ấy consumer sẽ thừa nhận các message từ nhiều partition. Nếu bạn có số consumer = số partition, mỗi consumer đã phát âm message theo trang bị tự từ một partition.Để dễ hiểu rộng, chúng ta xem qua hình hình ảnh bên dưới đây

Trong bức ảnh ở bên trên, Server 1 duy trì partition 0 cùng 3 với VPS 2 giữ lại các partition 1 với 2. Chúng ta bao gồm 2 consumer groups là A cùng B. Group A gồm 2 consumer cùng group B có 4 consumer. Consumer group A bao gồm 2 consumer, vậy đề nghị từng consumer đã đọc message tự 2 partition.Trong consumer group B, con số consumer thông qua số partition bắt buộc mỗi consumer đã phát âm message từ là một partition.
Kafka tuân theo các phép tắc được cung cấp bởi vì broker với consumer. Nghĩa là kafka không áp theo dõi những record được hiểu vì chưng consumer cùng vì thế phân vân gì về hành động của consumer. Việc giữ gìn các messages trong một khoảng tầm thời hạn được thông số kỹ thuật trước với nó tùy nằm trong vào consumer, để kiểm soát và điều chỉnh thời hạn làm sao để cho phù hợp. Bản thân consumer đã dò hỏi coi Kafa gồm message nào new hay không cùng cho Kafka biết đều record như thế nào bọn chúng hy vọng phát âm. Vấn đề này có thể chấp nhận được chúng tăng/sút offphối nhưng consumer mong muốn, do đó nó có thể phát âm lại các message đã được hiểu rồi với tái xử trí những sự khiếu nại trong trường thích hợp gặp gỡ sự nắm.
Ví dụ: nếu Kafka được cấu hình để giữ những messages vĩnh cửu vào một ngày với consumer bị down lâu bền hơn một ngày, khi ấy consumer đang mất message. Tuy nhiên, ví như consumer chỉ bị down trong khoảng 1 tiếng đồng hồ, lúc đó nó hoàn toàn rất có thể ban đầu đọc lại message tự offmix mới nhất.
Vai trò của Zookeeper
Zookeeper nhập vai trò là nơi tàng trữ tài liệu phân tán dạng key-value. Nó được tối ưu hóa mang lại tác vụ phát âm nhanh hao tuy thế ghi lừ đừ. Kafka thực hiện Zookeeper nhằm tiến hành bài toán bầu lựa chọn leader của Kafka broker cùng topic partition. Zookeeper cũng có thiết kế mang lại kỹ năng chịu lỗi cao, vì vậy Kafka nhờ vào tương đối nhiều vào Zookeeper.
Xem thêm: Là Gì? Nghĩa Của Từ Exhaust Là Gì, Nghĩa Của Từ Exhaust Exhaust Fumes Có Nghĩa Là Gì
Nó cũng rất được áp dụng nhằm lưu trữ tất cả metadata nlỗi là:
Offphối cho mỗi partition của consumer groupACL (Access control list) – được áp dụng mang lại việc giới hạn truy vấn cập/ủy quyềnQuota của consumer/producer – con số message tối nhiều mỗi giâyPartition Leader cùng tâm trạng của chúngKết luận
Kafka sẽ nhanh lẹ phát triển thành trụ cột chính của mặt đường ống tài liệu so với ngẫu nhiên tổ chức nào. Kafka được cho phép các bạn gồm một lượng phệ những messages đi qua 1 phương tiện đi lại tập trung và lưu trữ chúng cơ mà không nhất thiết phải lo lắng gì về số đông vấn đề như hiệu suất giỏi mất mát tài liệu. Kafka rất có thể là thành phần trung vai trung phong trong mô hình kiến trúc phía sự khiếu nại (event-driven) với được cho phép chúng ta phân tách thân vận dụng này cùng với ứng dụng không giống.