Kafka Là Gì

Kafka là một trong từ bỏ ngữ hơi thịnh hành trong đa số những lĩnh vực nghề nằm trong nghành công nghiệp ngày nay. Đa số hầu như công ty bậc nhất bên trên nhân loại mọi đã áp dụng kafka vào nền tảng cơ sở hạ tầng của bản thân. Nhưng câu hỏi đặt ra nó là gì cùng sức tác động của nó ra sao?

Kafka là gì?

Kafka là căn cơ streaming phân tán, hoàn toàn có thể không ngừng mở rộng và là sản phẩm mã mối cung cấp mở. Dự án Kafka lúc đầu được cách tân và phát triển bởi vì Linkedin tiếp nối biến đổi dự án Apache mã mối cung cấp mnghỉ ngơi vào thời điểm năm 2011. Kafka được viết bởi ngôn ngữ Scala và Java. Nó được viết ra nhằm mục tiêu mục đích hỗ trợ một căn nguyên nhưng bao gồm độ trễ phải chăng và thông lượng cao mang lại việc cách xử trí các mối cung cấp cấp dữ liệu theo thời hạn thực.Quý Khách sẽ xem: Apabịt kafka là gì

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

Kafka được desgin dựa vào quy mô publish/subcribe, tương tự như nlỗi ngẫu nhiên hệ thống message làm sao không giống. Các ứng dụng (đóng vai trò là producer) gửi các messages (records) cho tới một node kafka (broker) với nói rằng mọi messages này sẽ được cách xử trí vày những ứng dụng khác Hotline là consumers. Các messages được thân tặng kafka node sẽ được lưu trữ trong một khu vực Gọi là topic cùng sau đó consumer có thể subcribe tới topic kia với lắng tai đều messages này. Messages hoàn toàn có thể là bất cứ báo cáo gì nlỗi giá trị cảm ứng, hành động người dùng,…


*

Topic rất có thể được coi như như thể thương hiệu của một hạng mục cơ mà những messages sẽ được tàng trữ và được đẩy vào.

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

Partition

Topics trong kafka rất có thể gồm size rất cao, điều này không nên tàng trữ toàn bộ 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 chia ra thành những partition sẽ giúp bảo toàn tài liệu cũng tương tự cách xử lý dữ liệu thuận lợi rộng. Partitions chất nhận được bọn họ tiến hành subcribe tuy vậy tuy nhiên tới một topic ví dụ bằng cách phân loại dữ liệu vào một topic rõ ràng ra mang lại các broker khác nhau (kafka node), mỗi partition hoàn toàn có thể được bỏ lên trên một thiết bị lẻ tẻ – cho phép những consumer gọi tài liệu từ 1 topic diễn ra một biện pháp song tuy vậy.

Để tăng tính khả dụng (availability) của partition, mỗi partition cũng có cực hiếm replicas của riêng rẽ nó. Để dễ hiểu rộng về kafka, mình vẫn trình bày bởi ví dụ với 3 node/broker.

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


*

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


*

Để một producer/consumer ghi/đọc message từ một partition, chắc chắn chúng nên biết leader là ai nên không? Thông tin này cần được tất cả sẵn tại một vị trí như thế nào kia.

Kafka tàng trữ đông đảo ban bố điều đó là metadata trong một dịch vụ Gọi là Zookeeper.

Cấu trúc dữ liệu log vào Kafka

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


*

Một mối cung cấp dữ liệu đã ghi message vào log với một hoặc nhiều consumer không giống sẽ gọi message từ log tại thời gian bọn họ lựa chọn.

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

Xem thêm: Find Your Norton Product Key To Activate Norton 360? Buy Norton Internet Security 1 Device

Parsistence data trong Kafa

Kafka tàng trữ tất cả message vào disk (không còn lưu bên trên RAM) cùng được thu xếp bao gồm lắp thêm từ bỏ vào cấu tạo log có thể chấp nhận được kafka tận dụng tối đa buổi tối nhiều tài năng phát âm cùng ghi lên disk một giải pháp tuần từ.

Nó là 1 trong những bí quyết sàng lọc tương đối thịnh hành để lưu trữ tài liệu bên trên disk cơ mà vẫn có thể thực hiện buổi tối nhiều hóa hiệu năng, gồm một trong những nguyên do chính dưới đây:

Kafka nhờ vào không ít vào pagecache của hệ quản lý và điều hành đến câu hỏi lưu trữ tài liệu, sử dụng RAM trên máy một bí quyết tác dụng.Kafka tàng trữ những messages dưới định dạng nhị phân xuyên suốt quá trình (producer > broker > consumer), tạo nên nó hoàn toàn có thể tận dụng buổi tối ưu hóa khả năng zero-copy. Nghĩa là lúc hệ quản lý và điều hành copy dữ liệu từ bỏ pagecabít trực tiếp quý phái socket, trọn vẹn bỏ lỡ áp dụng trung gian là kafka.Đọc/ghi dữ liệu tuyến tính bên trên disk nhanh khô. Vấn đề tạo cho disk lờ đờ hiện giờ thường là vì quy trình tìm kiếm trên disk các lần. Kafka hiểu cùng ghi bên trên disk đường tính, cho nên vì thế nó có thể tận dụng buổi tối đa hóa hiệu suất bên trên disk.

Consumer cùng Consumer Group

Consumer hiểu các messages từ bất kỳ partition như thế nào, có thể chấp nhận được bạn không ngừng mở rộng lượng message được áp dụng tương tự như như phương pháp những producer hỗ trợ message.

Consumer cũng rất được tổ chức triển khai thành những consumer groups cho một topic rõ ràng – mỗi consumer bên phía trong group gọi message xuất phát điểm từ một partition duy nhất, để tránh Việc gồm 2 consumer thuộc cách xử trí hiểu và một message gấp đôi cùng toàn bộ group cách xử trí toàn bộ những message từ cục bộ topic.

Nếu bạn có số consumer > số partition, lúc đó một số consumer vẫn sinh hoạt chính sách nhàn hạ bởi vì chúng không có partition nào để xử lý.Nếu bạn có số partition > số consumer, lúc đó consumer vẫn dìm các message từ rất nhiều partition. Nếu chúng ta tất cả số consumer = số partition, từng consumer đã gọi message theo sản phẩm công nghệ tự từ là một partition.

Để dễ hiểu rộng, chúng ta liếc qua hình hình ảnh bên dưới đây


*

Trong bức ảnh làm việc trên, Server 1 duy trì partition 0 với 3 với hệ thống 2 duy trì những partition 1 với 2. Chúng ta bao gồm 2 consumer groups là A với B. Group A tất cả 2 consumer cùng group B có 4 consumer. Consumer group A có 2 consumer, vậy đề xuất từng consumer đang đọc message tự 2 partition.Trong consumer group B, con số consumer bằng số partition phải mỗi consumer vẫn hiểu message từ 1 partition.

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

Ví dụ: ví như Kafka được thông số kỹ thuật để giữ lại các messages mãi mãi vào một ngày với consumer bị down vĩnh viễn một ngày, khi đó consumer đã mất message. Tuy nhiên, trường hợp consumer chỉ bị down trong khoảng 1 tiếng đồng hồ đeo tay, lúc ấy nó trọn vẹn có thể bắt đầu hiểu lại message từ offphối tiên tiến nhất.

Vai trò của Zookeeper

Zookeeper vào vai trò là nơi tàng trữ dữ liệu phân tán dạng key-value. Nó được về tối ưu hóa mang đến tác vụ đọc nkhô giòn cơ mà ghi lờ đờ. Kafka sử dụng Zookeeper để triển khai bài toán bầu lựa chọn leader của Kafka broker cùng topic partition. Zookeeper cũng có phong cách thiết kế đến tài năng Chịu lỗi cao, cho nên vì vậy Kafka phụ thuộc không hề ít vào Zookeeper.

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

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

Kết luận

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

xổ số miền nam