CÓ PHẢI ZOOKEEPER LÀ GÌ, TÌM HIỂU APACHE ZOOKEEPER ZOOKEEPER LÀ GÌ

      193

Kafka là 1 trong từ bỏ ngữ hơi thịnh hành trong phần nhiều những nghành nghề nghề thuộc nghành nghề công nghiệp ngày nay. Đa số hầu hết công ty bậc nhất bên trên trái đất phần nhiều đang áp dụng kafka vào nền tảng gốc rễ hạ tầng của chính bản thân mình. Nhưng thắc mắc đề ra nó là gì và mức độ ảnh hưởng của chính nó ra sao?

Kafka là gì?

Kafka là nền tảng streaming phân tán, rất có thể không ngừng mở rộng và là sản phẩm mã nguồn msinh sống. Dự án Kafka ban sơ được phát triển vị Linkedin tiếp đến trở thành dự án Apađậy mã nguồn msinh sống vào khoảng thời gian 2011. Kafka được viết bởi ngôn ngữ Scala với Java. Nó được viết ra nhằm mục đích mục tiêu cung cấp một căn nguyên mà lại bao gồm độ trễ tốt với thông lượng cao mang lại câu hỏi giải pháp xử lý những nguồn cấp dữ liệu theo thời hạn thực.quý khách hàng vẫn xem: Zookeeper là gì

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

Kafka được gây ra dựa trên quy mô publish/subcribe, giống như nlỗi ngẫu nhiên khối hệ thống message nào không giống. 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ới bảo rằng phần nhiều messages này sẽ tiến hành cách xử lý vày những áp dụng không giống Gọi là consumers. Các messages được gửi trao kafka node sẽ được tàng trữ trong một chỗ Call là topic cùng tiếp đến consumer hoàn toàn có thể subcribe tới topic kia với lắng nghe những messages này. Messages có thể là bất kể công bố gì nlỗi quý giá cảm ứng, hành vi người dùng,…


*

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

Bạn đang xem: Có phải zookeeper là gì, tìm hiểu apache zookeeper zookeeper là gì

Partition

Topics trong kafka rất có thể bao gồm kích thước không nhỏ, những điều đó tránh việc tàng trữ tất cả tài liệu của một topic bên trên một node, dữ liệu đề nghị đươ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ư cách xử lý dữ liệu dễ ợt hơn. Partitions cho phép họ thực hiện subcribe tuy vậy song cho tới một topic ví dụ bằng cách phân loại tài liệu trong một topic cụ thể ra mang lại những broker không giống nhau (kafka node), từng partition rất có thể được để lên trên một trang bị đơn lẻ – chất nhận được các consumer phát âm tài liệu xuất phát điểm từ 1 topic diễn ra một phương pháp song tuy nhiên.

Để tăng tính khả dụng (availability) của partition, từng partition cũng có thể có quý giá replicas của riêng rẽ nó. Để dễ nắm bắt rộng về kafka, mình vẫn trình diễn bằng ví dụ cùng với 3 node/broker.

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


*

Tất cả các hành vi ghi cùng phát âm tới một topic đang đều cần đi qua partition leader tương ứng và leader sẽ kết hợp nhằm cập nhật tài liệu mới tới các replica parition không giống. Nếu leader bị hư, một trong những replica partition sẽ đảm nhiệm vai trò là 1 trong leader new.


*

Để một producer/consumer ghi/hiểu message xuất phát điểm từ một partition, chắc chắn bọn chúng nên biết leader là ai phải không? Thông tin này rất cần được có sẵn ở một vị trí nào đó.

Kafka lưu trữ những công bố đ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 kỹ nă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 hơi rối Khi lần thứ nhất nghe đến “log“, cũng chính vì họ thường đọc “log” chính là thuật nghữ được thực hiện vào log vận dụng. Tuy nhiên, phần nhiều gì mình đang nói tại đây, là cấu trúc tài liệu log. Log là 1 cấu trúc tài liệu gồm lắp thêm từ bỏ nhất quán mà lại chỉ hỗ trợ dạng nối thêm (append). Quý khách hàng cần yếu chỉnh sửa giỏi xóa các records trường đoản cú nó. Nó được hiểu từ bỏ trái sang buộc phải cùng được đảm bảo vật dụng từ những thành công.


*

Một nguồn dữ liệu sẽ ghi message vào log và một hoặc những consumer khác vẫn đọc message từ bỏ log tại thời gian bọn họ gạn lọc.

Mỗi entry vào log được định danh bởi một số lượng Hotline là offset, tốt nói một biện pháp dễ nắm bắt hơn, offphối y hệt như chỉ số tuần tự trong một array vậy.

Xem thêm: Mỹ Cấm Vận Nga - Trừng Phạt, Cấm Vận

Parsistence data vào Kafa

Kafka tàng trữ toàn bộ message vào disk (không hề lưu bên trên RAM) và được bố trí có thiết bị từ bỏ vào cấu tạo log có thể chấp nhận được kafka tận dụng tối đa tối nhiều khả năng gọi và ghi lên disk một bí quyết tuần tự.

Nó là một trong cách chọn lựa hơi phổ cập để lưu trữ tài liệu trên disk cơ mà vẫn rất có thể sử dụng tối nhiều hóa tính năng, có một số trong những lý do bao gồm dưới đây:

Kafka nhờ vào không ít vào pagecabịt của hệ điều hành mang lại câu hỏi lưu trữ tài liệu, sử dụng RAM bên trên thứ một giải pháp hiệu quả.Kafka tàng trữ các messages bên dưới định hình nhị phân xuyên suốt quá trình (producer > broker > consumer), khiến cho nó có thể tận dụng tối đa về tối ưu hóa năng lực zero-copy. Nghĩa là khi hệ điều hành và quản lý copy tài liệu tự pagecađậy thẳng sang trọng 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 trên disk nkhô nóng. Vấn đề tạo cho disk lờ lững bây chừ thường xuyên là vì quy trình kiếm tìm kiếm trên disk nhiều lần. Kafka phát âm với ghi bên trên disk tuyến đường tính, cho nên nó rất có thể tận dụng tối đa về tối đa hóa công suất bên trên disk.

Consumer với Consumer Group

Consumer phát âm các messages từ bỏ ngẫu nhiên partition làm sao, được 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 biện pháp những producer cung cấp message.

Consumer cũng khá được tổ chức thành các consumer groups cho một topic ví dụ – từng consumer bên phía trong group đọc message xuất phát điểm từ một partition độc nhất, nhằm tránh Việc có 2 consumer cùng xử lý phát âm cùng một message gấp đôi cùng tổng thể group xử lý tất cả những message từ toàn bộ topic.

Nếu chúng ta tất cả số consumer > số partition, khi đó một vài consumer sẽ sống chính sách thư thả chính vì chúng không có partition như thế nào nhằm giải pháp xử lý.Nếu chúng ta bao gồm số partition > số consumer, khi đó consumer đã dìm các message từ rất nhiều partition. Nếu các bạn có số consumer = số partition, từng consumer đã đọc message theo máy từ từ 1 partition.

Để dễ hiểu rộng, các bạn liếc qua hình hình họa dưới đây


*

Trong bức ảnh nghỉ ngơi trên, Server 1 duy trì partition 0 và 3 cùng server 2 giữ các partition 1 cùng 2. Chúng ta gồm 2 consumer groups là A và B. Group A có 2 consumer và group B tất cả 4 consumer. Consumer group A có 2 consumer, vậy phải từng consumer vẫn phát âm message từ 2 partition.Trong consumer group B, số lượng consumer ngay số partition yêu cầu từng consumer đang đọc message từ là một partition.

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

Ví dụ: nếu như Kafka được thông số kỹ thuật để giữ lại các messages tồn tại vào một ngày và consumer bị down lâu dài một ngày, khi đó consumer sẽ mất message. Tuy nhiên, ví như consumer chỉ bị down trong khoảng 1 tiếng đồng hồ thời trang, lúc đó nó hoàn toàn có thể bắt đầu phát âm lại message trường đoản cú offmix tiên tiến nhất.

Vai trò của Zookeeper

Zookeeper nhập vai trò là khu vực tàng trữ tài liệu phân tán dạng key-value. Nó được buổi tối ưu hóa mang đến tác vụ gọi nkhô nóng nhưng mà ghi lừ đừ. Kafka áp dụng Zookeeper để thực hiện câu hỏi 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 đựng lỗi cao, vì thế Kafka phụ thuộc khá nhiều vào Zookeeper.

Nó cũng được sử dụng để lưu trữ toàn bộ metadata như là:

Offmix cho từng partition của consumer groupACL (Access control list) – được áp dụng đến việc giới hạn truy tìm cập/ủy quyềnQuota của consumer/producer – số lượng message tối đa từng giâyPartition Leader và trạng thái của chúng

Kết luận

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