Zookeeper Là Gì

  -  

Kafka là 1 trong tự ngữ tương đối phổ cập trong đa số các nghành nghề ở trong nghành công nghiệp thời buổi này. Hầu như hầu hết cửa hàng số 1 bên trên quả đât số đông vẫn sử dụng kafka vào căn cơ cơ sở hạ tầng của mình. Nhưng thắc mắc đặt ra nó là gì cùng mức độ tác động của chính nó ra sao?

Kafka là gì?

Kafka là căn cơ streaming phân tán, rất có thể mở rộng với là thành phầm mã mối cung cấp mnghỉ ngơi. Dự án Kafka thuở đầu được cải tiến và phát triển bởi Linkedin sau đó trở nên dự án Apabịt mã nguồn msinh sống vào khoảng thời gian 2011. Kafka được viết bởi ngôn ngữ Scala cùng Java. Nó được viết ra nhằm mục đích cung cấp một căn cơ nhưng gồm độ trễ phải chăng và thông lượng cao mang đến Việc cách xử trí các mối cung cấp cấp tài liệu theo thời hạn thực.

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

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

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

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


*

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

Partition

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

Để tăng tính khả dụng (availability) của partition, mỗi partition cũng có thể có quý giá replicas của riêng nó. Để dễ hiểu hơn về kafka, mình đang trình diễn 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 cùng từng broker sẽ có một bạn dạng copy của partition. Trong số rất nhiều bạn dạng copy partition này, sẽ có một phiên bản copy được thai lựa chọn làm cho leader, trong những lúc hầu hết bạn dạng copy không giống chỉ thực hiện nhất quán tài 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 đang hầu hết nên trải qua partition leader tương xứng với leader đã kết hợp để cập nhật dữ liệu bắt đầu tới các replica parition khác. Nếu leader bị hư, một trong những replica partition vẫn phụ trách sứ mệnh là một trong leader mới.


*

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

Kafka tàng trữ đầy đủ công bố 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 trong Kafka

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


*

Một nguồn tài liệu vẫn ghi message vào log cùng một hoặc các consumer khác đang hiểu message từ log tại thời điểm bọn họ gạn lọc.

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

Xem thêm: Kết Quả Xét Nghiệm Điện Giải Đồ Là Gì ? Ý Nghĩa Các Chỉ Số Điện Giải Đồ

Parsistence data trong Kafa

Kafka lưu trữ tất cả message vào disk (không thể lưu giữ trên RAM) và được bố trí có sản phẩm công nghệ tự vào cấu tạo log cho phép kafka tận dụng về tối đa kĩ năng gọi cùng ghi lên disk một cách tuần từ.

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

Kafka phụ thuộc vào không hề ít vào pagecađậy của hệ điều hành mang đến Việc lưu trữ dữ liệu, áp dụng RAM bên trên trang bị một giải pháp tác dụng.Kafka tàng trữ những messages bên dưới định dạng nhị phân xuyên thấu quy trình (producer > broker > consumer), tạo nên 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ý và điều hành copy dữ liệu tự pagecache trực tiếp sang socket, trọn vẹn bỏ qua mất vận dụng trung gian là kafka.Đọc/ghi dữ liệu con đường tính trên disk nkhô hanh. Vấn đề làm cho disk lờ lững bây giờ thường là vì quy trình tìm tìm bên trên disk những lần. Kafka gọi và ghi trên disk con đường tính, cho nên vì thế nó có thể tận dụng tối đa về tối nhiều hóa năng suất trên disk.

Consumer cùng Consumer Group

Consumer gọi các messages từ bỏ ngẫu nhiên partition như thế nào, được cho phép bạn mở rộng lượng message được áp dụng tương tự như bí quyết các producer hỗ trợ message.

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

Nếu chúng ta tất cả số consumer > số partition, lúc ấy một số trong những consumer đã ở chế độ nhàn hạ bởi vì bọn chúng không có partition nào nhằm giải pháp xử lý.Nếu bạn gồm số partition > số consumer, lúc đó consumer đang dấn những message từ nhiều partition. Nếu bạn tất cả số consumer = số partition, từng consumer sẽ đọc message theo thiết bị từ bỏ từ một partition.

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


*

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

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

Ví dụ: trường hợp Kafka được cấu hình để giữ lại những messages trường thọ vào một ngày và consumer bị down lâu bền hơn 1 ngày, lúc đó consumer sẽ mất message. Tuy nhiên, trường hợp consumer chỉ bị down trong vòng 1 giờ đồng hồ đồng hồ thời trang, lúc đó nó hoàn toàn rất có thể bước đầu phát âm lại message tự offset tiên tiến nhất.

Vai trò của Zookeeper

Zookeeper vào vai trò là nơi tàng trữ tài liệu phân tán dạng key-value. Nó được về tối ưu hóa mang lại tác vụ đọc nhanh khô mà lại ghi chậm trễ. Kafka sử 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ế đến năng lực chịu đựng lỗi cao, vì thế Kafka dựa vào khá nhiều vào Zookeeper.

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

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

Producer cùng consumer ko địa chỉ trực tiếp với Zookeeper để tìm hiểu leader của partition tuyệt các metadata khác, chũm vào kia chúng đã truy hỏi vấn metadata cho tới Kafka broker – tiếp nối Kafka can dự với Zookeeper cùng gửi đánh giá metadata về lại cho việc đó.

Xem thêm: Trans Girl Là Gì - Thuật Ngữ Được Dùng Trong Giới Lgbt

Kết luận

Kafka đã mau lẹ trở nên lao động chính của đường ống tài liệu đối với ngẫu nhiên tổ chức triển khai nào. Kafka có thể chấp nhận được chúng ta bao gồm một lượng Khủng các messages đi sang một phương tiện tập trung với tàng trữ bọn chúng cơ mà không cần phải lo lắng gì về số đông sự việc nhỏng công suất hay mất mát dữ liệu. Kafka hoàn toàn có thể là nhân tố trung trọng tâm vào mô hình bản vẽ xây dựng hướng sự kiện (event-driven) với cho phép bạn phân bóc giữa áp dụng này cùng với vận dụng khác.