ZOOKEEPER LÀ GÌ

      171

Kafka là 1 trong những từ bỏ ngữ hơi thông dụng vào đa số các nghành nghề dịch vụ nghề ở trong nghành nghề công nghiệp ngày nay. Hầu như đông đảo cửa hàng hàng đầu trên quả đât đa số sẽ áp dụng kafka trong nền tảng cơ sở hạ tầng của bản thân mình. Nhưng thắc mắc đặt ra nó là gì với sức tác động của chính nó ra sao?

Kafka là gì?

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

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

Kafka được tạo ra dựa vào quy mô publish/subcribe, tương tự nlỗi ngẫu nhiên hệ thống message làm sao khác. Các vận dụng (vào vai trò là producer) gửi các messages (records) cho tới một node kafka (broker) với nói rằng những messages này sẽ tiến hành cách xử lý vày các áp dụng không giống Điện thoại tư vấn là consumers. Các messages được thân tặng kafka node sẽ được tàng trữ vào một khu vực Call là topic với sau đó consumer rất có thể subcribe tới topic đó và lắng nghe hầu như messages này. Messages có thể là bất kể thông báo gì nlỗi giá trị cảm biến, hành động người tiêu dùng,…


*

Topic có thể được xem như là thương hiệu của một danh mục mà các messages sẽ tiến hành lưu trữ với được đẩy vào.

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

Partition

Topics vào kafka có thể tất cả size không hề nhỏ, như thế không nên lưu trữ tất cả tài liệu của một topic trên một node, tài liệu bắt buộc đươc phân loại ra thành các partition để giúp bảo toàn dữ liệu cũng giống như xử lý dữ liệu tiện lợi hơn. Partitions cho phép chúng ta tiến hành subcribe song song cho tới một topic rõ ràng bằng cách phân chia tài liệu trong một topic rõ ràng ra cho các broker khác biệt (kafka node), từng partition hoàn toàn có thể được đặt lên một máy cá biệt – chất nhận được những consumer phát âm dữ liệu xuất phát từ 1 topic ra mắt 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ó cực hiếm replicas của riêng biệt nó. Để dễ hiểu hơn về kafka, bản thân đang trình diễn bằng ví dụ với 3 node/broker.

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


*

Tất cả những hành động ghi và hiểu tới một topic sẽ các đề nghị trải qua partition leader khớp ứng cùng leader đã phối hợp nhằm cập nhật tài liệu new cho tới các replica parition khác. Nếu leader bị hư, một trong các replica partition vẫn đảm nhận vai trò là 1 trong những leader new.


*

Để một producer/consumer ghi/đọc message từ 1 partition, chắc hẳn rằng bọn chúng nên biết leader là ai đề xuất không? tin tức này rất cần được có sẵn ở 1 địa chỉ như thế nào đó.

Kafka tàng trữ gần như báo cáo điều này là metadata trong một hình thức gọi là Zookeeper.

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

Chìa khóa chính dẫn đến năng lực không ngừng mở rộng với công suất của kafka đó là log. Thường thì những developer lúc mới tiếp cận kafka cảm giác tương đối rối khi lần trước tiên nghe đến “log“, bởi vì chúng ta thường xuyên phát âm “log” đó là thuật nghữ được thực hiện vào log áp dụng. Tuy nhiên, đầy đủ gì mình sẽ nói ở đây, là kết cấu tài liệu log. Log là 1 trong những cấu trúc dữ liệu gồm sản phẩm từ đồng nhất 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 những records trường đoản cú nó. Nó được hiểu tự trái quý phái bắt buộc và được đảm bảo an toàn thiết bị trường đoản cú các tòa tháp.


*

Một nguồn tài liệu đang ghi message vào log cùng một hoặc nhiều consumer không giống đã đọc message trường đoản cú log tại thời gian bọn họ sàng lọc.

Mỗi entry vào log được định danh vày một con số Hotline là offphối, hay nói một cách dễ nắm bắt rộng, offphối giống hệt như chỉ số tuần từ bỏ trong một array vậy.

Xem thêm: Piaggio Vespa 946 2021: Giá Xe Vespa 946 Red, Giá Xe Vespa 946 Red

Parsistence data trong Kafa

Kafka tàng trữ toàn bộ message vào disk (không thể lưu giữ bên trên RAM) cùng được bố trí bao gồm sản phẩm trường đoản cú vào cấu trúc log cho phép kafka tận dụng về tối nhiều kỹ năng phát âm cùng ghi lên disk một phương pháp tuần trường đoản cú.

Nó là một trong những bí quyết chọn lựa hơi phổ biến để tàng trữ dữ liệu bên trên disk nhưng vẫn hoàn toàn có thể sử dụng tối đa hóa hiệu năng, tất cả một trong những lý do thiết yếu bên dưới đây:

Kafka nhờ vào tương đối nhiều vào pagecađậy của hệ quản lý và điều hành đến bài toán tàng trữ tài liệu, sử dụng RAM bên trên đồ vật một phương pháp hiệu quả.Kafka lưu trữ các messages dưới định hình nhị phân xuyên suốt quy trình (producer > broker > consumer), khiến cho nó có thể tận dụng buổi tối ưu hóa tài năng zero-copy. Nghĩa là khi hệ quản lý điều hành copy tài liệu tự pagecabít thẳng sang trọng socket, hoàn toàn bỏ qua vận dụng trung gian là kafka.Đọc/ghi tài liệu đường tính bên trên disk nkhô nóng. Vấn đề tạo nên disk chậm hiện nay hay là vì quá trình search kiếm trên disk các lần. Kafka gọi với ghi bên trên disk con đường tính, vì thế nó rất có thể tận dụng tối đa buổi tối đa hóa năng suất bên trên disk.

Consumer cùng Consumer Group

Consumer phát âm những messages trường đoản cú bất kỳ partition làm sao, được cho phép chúng ta không ngừng mở rộng lượng message được thực hiện tương tự như biện pháp các producer cung ứng message.

Consumer cũng được tổ chức triển khai thành những consumer groups cho 1 topic ví dụ – từng consumer bên phía trong group hiểu message xuất phát từ một partition độc nhất, để tránh bài toán bao gồm 2 consumer thuộc xử trí đọc và một message 2 lần cùng cục bộ group cách xử trí tất cả những message từ bỏ toàn cục topic.

Nếu bạn tất cả số consumer > số partition, lúc đó một số consumer vẫn sinh sống chế độ nhàn rỗi bởi vì chúng không có partition như thế nào nhằm cách xử lý.Nếu chúng ta tất cả số partition > số consumer, lúc ấy consumer đã thừa nhận những message từ rất nhiều partition. Nếu các bạn gồm số consumer = số partition, từng consumer vẫn hiểu message theo thứ trường đoản cú từ 1 partition.

Để dễ nắm bắt hơn, chúng ta xem qua hình ảnh dưới đây


*

Trong tấm hình làm việc bên trên, Server 1 giữ lại partition 0 và 3 với hệ thống 2 giữ các partition 1 và 2. Chúng ta gồm 2 consumer groups là A cùng B. Group A gồm 2 consumer cùng group B gồm 4 consumer. Consumer group A gồm 2 consumer, vậy buộc phải từng consumer đang hiểu message tự 2 partition.Trong consumer group B, số lượng consumer ngay số partition cần mỗi consumer đang gọi message từ là một partition.

Kafka tuân theo các quy tắc được hỗ trợ vị broker với consumer. Nghĩa là kafka không áp theo dõi các record được phát âm bởi vì consumer với cho nên lưỡng lự gì về hành vi của consumer. Việc gìn giữ những messages vào một khoảng thời hạn được thông số kỹ thuật trước với nó tùy trực thuộc vào consumer, để điều chỉnh thời gian làm sao để cho cân xứng. Bản thân consumer vẫn dò la xem Kafa tất cả message nào bắt đầu hay là không và cho Kafka biết phần lớn record như thế nào chúng muốn phát âm. Như vậy chất nhận được bọn chúng tăng/bớt offset nhưng consumer mong muốn, do đó nó rất có thể đọc lại các message đã làm được hiểu rồi và tái xử trí các sự khiếu nại trong trường hòa hợp gặp sự ráng.

Ví dụ: trường hợp Kafka được cấu hình để giữ những messages trường tồn vào một ngày cùng consumer bị down dài lâu một ngày, lúc ấy consumer đang mất message. Tuy nhiên, ví như consumer chỉ bị down trong vòng 1 giờ đồng hồ đồng hồ thời trang, khi ấy nó hoàn toàn có thể bắt đầu đọc lại message trường đoản cú offmix mới nhất.

Vai trò của Zookeeper

Zookeeper vào vai trò là chỗ 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ụ hiểu nkhô nóng nhưng ghi lờ đờ. Kafka thực hiện Zookeeper nhằm thực hiện Việc bầu lựa chọn leader của Kafka broker cùng topic partition. Zookeeper cũng được thiết kế theo phong cách cho năng lực chịu lỗi cao, vì vậy Kafka dựa vào khá nhiều vào Zookeeper.

Nó cũng rất được áp dụng nhằm lưu trữ tất cả metadata nhỏng là:

Offphối cho mỗi partition của consumer groupACL (Access control list) – được thực hiện mang lại vấn đề số lượng giới hạn truy nã cập/ủy quyềnQuota của consumer/producer – số lượng message tối nhiều từng giâyPartition Leader với tâm trạng của chúng

Kết luận

Kafka đã mau lẹ thay đổi trụ cột của con đường ống dữ liệu đối với bất kỳ tổ chức như thế nào. Kafka cho phép các bạn tất cả một lượng mập những messages đi qua một phương tiện đi lại triệu tập và lưu trữ bọn chúng nhưng mà không cần phải băn khoăn lo lắng gì về đều vụ việc như công suất giỏi mất mát tài liệu. Kafka rất có thể là thành phần trung trọng tâm vào quy mô phong cách xây dựng hướng sự kiện (event-driven) với cho phép bạn phân bóc giữa vận dụng này với áp dụng khác.