Zookeeper là gì

     

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

Kafka là gì?

Kafka là căn cơ streaming phân tán, có thể không ngừng mở rộng và là thành phầm mã mối cung cấp mnghỉ ngơi. Dự án Kafka ban sơ được cách tân và phát triển bởi Linkedin kế tiếp đổi mới dự án Apache mã mối cung cấp msinh sống vào khoảng thời gian 2011. Kafka được viết bởi ngôn từ Scala và Java. Nó được viết ra nhằm mục tiêu hỗ trợ một căn nguyên nhưng bao gồm độ trễ rẻ với thông lượng cao cho Việc giải pháp xử lý các nguồn cấp cho dữ liệu theo thời hạn thực.

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

Quý khách hàng đang xem: Zookeeper là gì

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

Kafka được xây đắp dựa trên quy mô publish/subcribe, giống như như bất kỳ khối hệ thống message như thế nào khác. Các ứng dụng (nhập vai trò là producer) gửi những messages (records) cho tới một node kafka (broker) với bảo rằng hầu như messages này sẽ tiến hành giải pháp xử lý do các áp dụng khác Điện thoại tư vấn là consumers. Các messages được gửi tới kafka node sẽ tiến hành lưu trữ trong một khu vực Gọi là topic cùng tiếp nối consumer có thể subcribe cho tới topic đó cùng lắng tai đa số messages này. Messages có thể là bất kể đọc tin gì nhỏng cực hiếm cảm biến, hành vi người dùng,…


*

Topic rất có thể được coi như như là tên của một danh mục mà các messages sẽ được tàng trữ cùng được đẩy vào.

Partition

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

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

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


*

Tất cả các hành vi ghi cùng đọc cho tới một topic vẫn hồ hết buộc phải đi qua partition leader tương xứng và leader đang phối hợp để cập nhật tài liệu mới cho tới những replica parition khác. Nếu leader bị lỗi, một trong số replica partition vẫn phụ trách vai trò là một trong leader bắt đầu.


*

Để một producer/consumer ghi/phát âm message xuất phát điểm từ 1 partition, chắc hẳn rằng chúng cần biết leader là ai cần không? tin tức này cần phải gồm sẵn tại 1 vị trí như thế nào kia.

Kafka lưu trữ phần đa thông tin như thế là metadata vào 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 bao gồm mang tới năng lực mở rộng và năng suất của kafka chính là log. Thông thường các developer Khi mới tiếp cận kafka cảm giác tương đối rối Khi lần đầu tiên biết đến “log“, bởi vì bọn họ thường hiểu “log” đó là thuật nghữ được áp dụng vào log áp dụng. Tuy nhiên, phần đa gì mình vẫn nói tại chỗ này, là kết cấu tài liệu log. Log là một cấu trúc tài liệu gồm sản phẩm tự đồng nhất mà chỉ cung ứng dạng nối thêm (append). Bạn quan trọng sửa đổi xuất xắc xóa các records từ nó. Nó được phát âm từ bỏ trái thanh lịch phải cùng được bảo đảm an toàn máy từ bỏ những công trình.


*

Một nguồn tài liệu vẫn ghi message vào log với một hoặc các consumer khác đã gọi message tự log tại thời điểm họ tuyển lựa.

Mỗi entry vào log được định danh vì chưng một con số Điện thoại tư vấn là offphối, tốt nói một cách dễ nắm bắt rộng, offphối y hệt như chỉ số tuần trường đoản cú trong một array vậy.

Xem thêm: Danh Sách Các Công Ty Kiểm Toán Tại Việt Nam, Tổ Chức Kiểm Toán Được Chấp Thuận

Parsistence data trong Kafa

Kafka tàng trữ tất cả message vào disk (không hề lưu giữ trên RAM) và được sắp xếp bao gồm sản phẩm tự trong cấu trúc log được cho phép kafka tận dụng buổi tối đa kĩ năng hiểu và ghi lên disk một cách tuần từ.

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

Kafka phụ thuộc không hề ít vào pagecabịt của hệ điều hành và quản lý mang đến bài toán tàng trữ tài liệu, thực hiện RAM trên thiết bị một giải pháp tác dụng.Kafka lưu trữ các messages bên dưới định dạng nhị phân xuyên suốt quá trình (producer > broker > consumer), tạo cho nó hoàn toàn có thể tận dụng tối đa 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 dữ liệu từ bỏ pagecađậy thẳng sang socket, hoàn toàn bỏ qua mất vận dụng trung gian là kafka.Đọc/ghi dữ liệu tuyến đường tính trên disk nhanh. Vấn đề làm cho disk chậm trễ hiện giờ thường là vì quy trình tìm kiếm kiếm trên disk các lần. Kafka phát âm với ghi bên trên disk tuyến tính, vì vậy nó hoàn toàn có thể tận dụng tối đa hóa công suất bên trên disk.

Consumer cùng Consumer Group

Consumer phát âm những messages từ bỏ bất kỳ partition làm sao, có thể chấp nhận được các bạn không ngừng mở rộng lượng message được thực hiện tựa như nlỗi giải pháp những producer cung cấp message.

Consumer cũng rất được tổ chức triển khai thành những consumer groups cho 1 topic rõ ràng – từng consumer bên trong group hiểu message từ một partition độc nhất vô nhị, nhằm rời việc có 2 consumer thuộc xử trí đọc cùng một message gấp đôi với toàn thể group xử trí toàn bộ những message từ toàn bộ topic.

Nếu bạn tất cả số consumer > số partition, khi đó một vài consumer sẽ làm việc chế độ thanh nhàn chính vì chúng không có partition như thế nào để cách xử trí.Nếu bạn có số partition > số consumer, khi ấy consumer đang dấn các message từ khá nhiều partition. Nếu các bạn có số consumer = số partition, mỗi consumer đã đọc message theo vật dụng trường đoản cú từ là 1 partition.

Để dễ dàng nắm bắt rộng, chúng ta liếc qua hình hình họa bên dưới đây


*

Trong bức ảnh sinh sống bên trên, Server 1 duy trì partition 0 với 3 với VPS 2 giữ lại các partition 1 và 2. Chúng ta có 2 consumer groups là A cùng B. Group A bao gồm 2 consumer cùng group B tất cả 4 consumer. Consumer group A bao gồm 2 consumer, vậy nên mỗi consumer vẫn gọi message từ bỏ 2 partition.Trong consumer group B, con số consumer ngay số partition phải mỗi consumer sẽ hiểu message từ là 1 partition.

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

Ví dụ: nếu như Kafka được thông số kỹ thuật để giữ các messages vĩnh cửu vào một ngày và consumer bị down lâu bền hơn một ngày, lúc ấy consumer vẫn mất message. Tuy nhiên, ví như consumer chỉ bị down trong tầm 1 tiếng đồng hồ đeo tay, khi đó nó hoàn toàn hoàn toàn có thể bước đầu phát âm lại message từ bỏ offset tiên tiến nhất.

Vai trò của Zookeeper

Zookeeper nhập vai trò là vị trí lưu 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ụ hiểu nkhô hanh nhưng lại ghi chậm rì rì. Kafka sử dụng Zookeeper để thực hiện câu hỏi thai lựa chọn leader của Kafka broker và topic partition. Zookeeper cũng được thiết kế theo phong cách đến kĩ năng Chịu lỗi cao, do đó Kafka nhờ vào không ít vào Zookeeper.

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

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

Kết luận

Kafka đã nhanh chóng biến trụ cột của đường ống tài liệu đối với ngẫu nhiên tổ chức triển khai làm sao. Kafka được cho phép các bạn gồm một lượng phệ các messages đi qua 1 phương tiện đi lại triệu tập cùng tàng trữ bọn chúng cơ mà không cần thiết phải băn khoăn lo lắng gì về đa số vụ việc nlỗi công suất tốt mất non dữ liệu. Kafka rất có thể là yếu tắc trung trung khu trong quy mô phong cách thiết kế phía sự kiện (event-driven) và cho phép các bạn phân tách bóc giữa áp dụng này với ứng dụng khác.


Chuyên mục: Công nghệ tài chính