ZOOKEEPER LÀ GÌ

  -  

Kafka là 1 từ bỏ ngữ tương đối thông dụng vào hầu như những nghành nghề nghề nằm trong nghành công nghiệp thời nay. Đa số hồ hết công ty bậc nhất trên quả đât đa số sẽ thực hiện kafka trong căn cơ cơ sở hạ tầng của chính bản thân mình. Nhưng câu hỏi đề ra nó là gì với sức tác động của nó ra sao?

Kafka là gì?

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

Kafka hoạt động như thế nào?

Kafka được phát hành dựa vào mô hình publish/subcribe, tựa như như ngẫu nhiên hệ thống message nào khác. Các áp dụng (đóng vai trò là producer) gửi các messages (records) tới một node kafka (broker) cùng bảo rằng đa số messages này sẽ tiến hành xử trí bởi các vận dụng khác Gọi là consumers. Các messages được gửi tặng kafka node sẽ tiến hành lưu trữ trong một địa điểm Call là topic với tiếp nối consumer hoàn toàn có thể subcribe cho tới topic đó và lắng nghe số đông messages này. Messages có thể là bất kể thông tin gì nhỏng quý giá cảm ứng, hành động người tiêu dùng,…


*

Topic hoàn toàn có thể được xem như thể tên của một danh mục nhưng những messages sẽ được lưu trữ với được đẩy vào.quý khách hàng đã xem: Zookeeper là gì

Partition

Topics trong kafka rất có thể gồm kích cỡ rất lớn, điều này không nên tàng trữ tất cả dữ liệu của một topic trên một node, tài liệu đề nghị đươc phân loại ra thành những partition sẽ giúp đỡ bảo toàn tài liệu cũng giống như xử lý dữ liệu dễ dãi hơn. Partitions cho phép chúng ta tiến hành subcribe song tuy vậy tới một topic cụ thể bằng cách phân loại tài liệu trong một topic ví dụ ra cho nhiều broker khác biệt (kafka node), mỗi partition rất có thể được để lên một trang bị cá biệt – cho phép các consumer phát âm dữ liệu xuất phát điểm từ một topic diễn ra một cách tuy vậy tuy vậy.

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

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

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


*

Tất cả những hành vi ghi cùng đọc tới một topic sẽ đầy đủ phải trải qua partition leader khớp ứng và leader đã kết hợp để update tài liệu mới cho tới những replica parition khác. Nếu leader bị hỏng, một trong các replica partition đã đảm nhận sứ mệnh là một leader new.


*

Để một producer/consumer ghi/phát âm message xuất phát điểm từ một partition, chắc chắn chúng nên biết leader là ai buộc phải không? Thông tin này rất cần được bao gồm sẵn ở 1 địa điểm làm sao đó.

Kafka tàng trữ mọi thông tin những điều đó là metadata trong một hình thức dịch vụ điện thoại tư vấn là Zookeeper.

Cấu trúc dữ liệu log trong Kafka

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


*

Một nguồn tài liệu đã ghi message vào log với một hoặc nhiều consumer khác sẽ đọc message từ bỏ log trên thời khắc chúng ta chắt lọc.

Parsistence data vào Kafa

Kafka lưu trữ tất cả message vào disk (không còn lưu bên trên RAM) và được bố trí gồm sản phẩm từ vào kết cấu log có thể chấp nhận được kafka tận dụng tối đa buổi tối đa kỹ năng gọi và ghi lên disk một cách tuần tự.

Xem thêm: 200000+ Cái Cốc Hình Ảnh Png, 200000+ Cái Cốc Uống Nước Hình Ảnh Tải Xuống

Nó là một phương pháp sàng lọc hơi thông dụng để lưu trữ dữ liệu trên disk mà vẫn có thể sử dụng tối nhiều hóa tính năng, có một số trong những nguyên do chủ yếu dưới đây:

Kafka nhờ vào tương đối nhiều vào pagecache của hệ quản lý và điều hành cho việc tàng trữ tài liệu, thực hiện RAM bên trên máy một cách tác dụng.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ó hoàn toàn có thể tận dụng buổi tối ưu hóa kĩ năng zero-copy. Nghĩa là lúc hệ điều hành quản lý copy tài liệu trường đoản cú pagecađậy trực tiếp quý phái socket, trọn vẹn bỏ qua vận dụng trung gian là kafka.Đọc/ghi dữ liệu đường tính bên trên disk nkhô giòn. Vấn đề khiến cho disk lờ lững hiện thời thường xuyên là do quy trình tìm kiếm kiếm bên trên disk những lần. Kafka đọc cùng ghi trên disk con đường tính, cho nên vì thế nó hoàn toàn có thể tận dụng buổi tối đa hóa năng suất trên disk.

Consumer với Consumer Group

Consumer phát âm những messages trường đoản cú ngẫu nhiên partition như thế nào, có thể chấp nhận được chúng ta mở rộng lượng message được sử dụng tựa như như giải pháp các producer cung ứng message.

Consumer cũng rất được tổ chức thành các consumer groups cho 1 topic rõ ràng – mỗi consumer bên trong group đọc message xuất phát từ 1 partition nhất, nhằm rời vấn đề bao gồm 2 consumer thuộc xử lý phát âm cùng một message 2 lần cùng toàn thể group giải pháp xử lý tất cả các message trường đoản cú toàn bộ topic.

Nếu bạn tất cả số consumer > số partition, khi ấy một số trong những consumer vẫn ở chế độ nhàn nhã cũng chính vì chúng không có partition nào nhằm cách xử trí.Nếu chúng ta có số partition > số consumer, khi đó consumer vẫn nhấn các message từ khá nhiều partition. Nếu các bạn có số consumer = số partition, từng consumer đã hiểu message theo đồ vật tự từ là 1 partition.

Để dễ nắm bắt hơn, các bạn liếc qua hình hình họa dưới đây


*

Trong tấm hình ngơi nghỉ trên, Server 1 duy trì partition 0 và 3 với VPS 2 giữ những partition 1 với 2. Chúng ta bao gồm 2 consumer groups là A cùng B. Group A có 2 consumer cùng group B có 4 consumer. Consumer group A gồm 2 consumer, vậy đề xuất mỗi consumer đang hiểu message từ bỏ 2 partition.Trong consumer group B, con số consumer thông qua số partition yêu cầu từng consumer đã gọi message từ là 1 partition.

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

Ví dụ: ví như Kafka được cấu hình để giữ lại các messages lâu dài trong một ngày với consumer bị down lâu hơn 1 ngày, lúc ấy consumer đã mất message. Tuy nhiên, giả dụ consumer chỉ bị down trong khoảng 1 tiếng đồng hồ, lúc ấy nó trọn vẹn có thể ban đầu hiểu lại message từ bỏ offmix tiên tiến nhất.

Xem thêm: Và 75 Năm Ngày Hội Quốc Phòng Toàn Dân Là Gì, Ngày Hội Quốc Phòng Toàn Dân

Vai trò của 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 từng partition của consumer groupACL (Access control list) – được thực hiện mang đến vấn đề giới hạn tróc nã cập/ủy quyềnQuota của consumer/producer – số lượng message về tối nhiều mỗi giâyPartition Leader cùng trạng thái của chúng

Kết luận

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