Apache Kafka Là Gì – Series Tìm Hiểu Apache Kafka (Phần 1)

Kafka là một Một trong những từ ngữ khá phổ cập trong phần đông những nghành nghề dịch vụ nghề nghề thuộc nghành nghề công nghiệp lúc này. Đông đảo mọi doanh nghiệp đi đầu tiên phong hàng đầu trên toàn cầu đều đang dùng kafka trong nguồn gốc cơ sở hạ tầng của tớ. Nhưng khúc mắc đặt ra nó là gì và sức tác động ảnh hưởng của chính mình nó như thế nào?

Kafka là gì?

Kafka là nguồn gốc streaming phân tán, rất rất có khả năng mở rộng và là loại sản phẩm mã nguồn mở. Dự Án BĐS Bất Động Sản Nhà Đất Kafka mở màn được phát triển bởi Linkedin sau đó trở thành Dự Án BĐS Nhà Đất Apache mã nguồn mở vào lúc thời khắc 2011. Kafka được viết bằng ngữ điệu Scala và Java. Nó được viết ra nhằm mục tiêu mục tiêu kim chỉ nam cung cấp một nguồn gốc mà có độ trễ thấp và thông lượng cao cho việc xử lý và giải quyết và xử lý những nguồn cấp dữ liệu theo thời điểm thực. Bài Viết: Apache kafka là gì

Kafka hoạt động và sinh hoạt và hoạt động và sinh hoạt thế nào?

Kafka được kiến thiết xây dựng nhờ vào loại hình publish/subcribe, cũng giống như như bất kể mạng lưới mạng lưới hệ thống message nào khác. Những ứng dụng (đóng sức ảnh hưởng là producer) gửi những messages (records) tới một node kafka (broker) và nói rằng những messages đó sẽ tiến hành triển khai xử lý và giải quyết và xử lý bởi những ứng dụng khác gọi là consumers. Những messages được gửi tới kafka node sẽ tiến hành triển khai lưu trữ trong một Vị trí gọi là topic và sau đó consumer rất rất có khả năng subcribe tới topic đó và lắng nghe những messages này. Messages rất rất có khả năng là bất kể thông tin gì như chi phí cảm ứng, hành động khách hàng,…

*

Topic rất rất có khả năng được coi như thể tên thường gọi của một khuôn khổ mà những messages sẽ tiến hành triển khai lưu trữ và được đẩy vào.

Partition

Topics trong kafka rất rất có khả năng có size rất to lớn, như vậy không nên lưu trữ toàn bộ tổng thể toàn diện và tổng thể dữ liệu của một topic trên một node, dữ liệu cần đươc phân chia ra thành nhiều partition sẽ giúp sức bảo toàn dữ liệu giống hệt như như xử lý và giải quyết và xử lý dữ liệu dễ dàng và đơn giản và đơn giản dễ dàng hơn. Partitions được cho phép tổng thể toàn bộ tất cả chúng ta tiến hành triển khai subcribe thế nhưng thế nhưng tới một topic cụ thể chi tiết cụ thể bằng cách thức thức thức phân chia dữ liệu trong một topic cụ thể chi tiết cụ thể ra cho nhiều broker khác nhau (kafka node), mỗi partition rất rất có khả năng được đặt lên trên trên một máy riêng biệt – được cho phép nhiều consumer đọc dữ liệu xuất phát từ 1 topic Đánh Giá một cách thức thức thức thế nhưng thế nhưng. Để tăng tính khả dụng (availability) của partition, mỗi partition cũng sẽ có chi phí replicas của riêng nó. Để đơn giản dễ dàng chớp lấy hơn về kafka, mình sẽ biểu diễn bằng ví dụ với 3 node/broker. Hiện giờ, một topic sẽ tiến hành triển khai chia nhỏ dại ra thành 3 partitions và mỗi broker sẽ chiếm được một bản copy của partition. 1 trong các bản copy partition này, sẽ chiếm được một bản copy được reviews làm leader, Một trong những lúc các bản copy khác chỉ tiến hành triển khai đồng hóa dữ liệu với partition leader.

Xem Ngay:  Point Là Gì
*

Toàn diện toàn bộ tổng thể những hành động ghi và đọc tới một topic sẽ đều phải thông qua partition leader khớp ứng và leader sẽ phối kết hợp để update dữ liệu mới tới những replica parition khác. Nếu leader bị hỏng, một trong những những những replica partition sẽ tiếp nhận sức ảnh hưởng là một Một trong những leader mới.

*

Để một producer/consumer ghi/đọc message xuất phát từ 1 partition, khẳng định chắc chắn chúng rất cần được biết leader ai đó đã phải không? Thông tin này rất cần được có sẵn ở 1 nơi đặt đặt nào đấy. Kafka lưu trữ những thông tin như thế cho nên là metadata trong một dịch vụ gọi là Zookeeper.

Kết cấu dữ liệu log trong Kafka

Chìa khóa chính dẫn tới kiến thức và kỹ năng mở rộng và hiệu suất của kafka đây là log. Thỉnh thoảng những developer khi mới tiếp cận kafka cảm nhận thấy cảm nhận khá rối khi lần trước tiên nghe đến “log“, do tại tổng thể toàn bộ tất cả chúng ta thường hiểu “log” đây là thuật nghữ được dùng trong log ứng dụng. Tuy nhiên, những gì mình đang nói ở chỗ này, là kết cấu dữ liệu log. Log là một Một trong những kết cấu dữ liệu có thứ tự như nhau mà chỉ giúp sức dạng nối thêm (append). Bạn đã hết thay đổi hay xóa những records từ nó. Nó được đọc từ trái sang phải và được đảm bảo an toàn an toàn và tin cậy thứ tự những item.

*

Một nguồn dữ liệu sẽ ghi message vào log và một hoặc nhiều consumer khác sẽ đọc message từ log tại thời điểm họ lựa chọn. Mỗi entry trong log được định danh bởi một số trong những lượng gọi là offset, hay nói một cách thức thức thức đơn giản dễ dàng chớp lấy hơn, offset giống như chỉ số tuần tự trong một array vậy. Vì chuỗi/offset chỉ rất rất có khả năng được bảo dưỡng trên từng node/broker cụ thể chi tiết cụ thể và đã hết được bảo dưỡng so với tổng thể toàn bộ cluster, vì thế Kafka chỉ đảm bảo an toàn an toàn và tin cậy sắp đc xếp hạng thứ tự dữ liệu cho mỗi partition. Xem Ngay: Công Ty Mẹ (parent Companies) Và Công Ty Con ( Subsidiary Là Gì

Parsistence data trong Kafa

Kafka lưu trữ toàn bộ tổng thể toàn diện và tổng thể message vào disk (đã hết lưu trên RAM) và được sắp xếp có thứ tự trong kết cấu log được cho phép kafka tận dụng tối đa kiến thức và kỹ năng đọc và ghi lên disk một cách thức thức thức tuần tự. Nó là một Một trong những cách thức thức thức lựa chọn khá phổ cập để lưu trữ dữ liệu trên disk mà vẫn rất rất có khả năng dùng tối đa hóa hiệu năng, có một số nguyên do chính tiếp trong tương lai: Kafka phụ thuộc không ít vào pagecache của hệ quản lý điều hành điều hành cho việc lưu trữ dữ liệu, dùng RAM trên máy một cách thức thức thức chức năng.Kafka lưu trữ những messages phía dưới định dạng nhị phân xuyên suốt quy trình tiến độ tiến trình (producer > broker > consumer), làm cho chúng rất rất có khả năng tận dụng tối ưu hóa kiến thức và kỹ năng zero-copy. Nghĩa là khi hệ quản lý điều hành điều hành copy dữ liệu từ pagecache trực tiếp sang socket, hoàn hảo nhất bỏ qua ứng dụng trung gian là kafka.Đọc/ghi dữ liệu tuyến tính trên disk nhanh. Vấn đề làm cho disk chậm hiên giờ đôi chút là vì quy trình tiến độ tiến trình tìm kiếm trên disk đã hết vài lần. Kafka đọc và ghi trên disk tuyến tính, vì thế chúng rất rất có khả năng tận dụng tối đa hóa hiệu suất trên disk.

Xem Ngay:  Nupakachi Nghĩa Là Gì - Xem Mv Nupakachi (Hãy Đợi Đấy) Của Ngô Kiến Huy

Consumer và Consumer Group

Consumer đọc những messages từ bất kể partition nào, được cho phép bạn mở rộng lượng message được dùng cũng giống như như cách thức thức thức những producer cung cấp message. Consumer cũng khá được tổ chức triển khai tiến hành thành những consumer groups cho một topic cụ thể chi tiết cụ thể – mỗi consumer bên trong group đọc message xuất phát từ 1 partition duy nhất, để tiêu giảm việc có 2 consumer cùng xử lý và giải quyết và xử lý đọc cùng một message gấp rất nhiều lần và tổng thể toàn bộ group xử lý và giải quyết và xử lý toàn bộ tổng thể toàn diện và tổng thể những message từ tổng thể toàn bộ topic. Nếu như khách hàng có số consumer > số partition, khi đó một số consumer sẽ ở chế độ nhàn rỗi do tại chúng không sống sót partition nào để xử lý và giải quyết và xử lý.Nếu như khách hàng có số partition > số consumer, khi đó consumer sẽ nhận những message từ nhiều partition. Nếu như khách hàng có số consumer = số partition, mỗi consumer sẽ đọc message theo thứ tự khởi hành điểm xuất phát điểm từ một partition. Để đơn giản dễ dàng chớp lấy hơn, tổng thể toàn bộ tất cả chúng ta xem qua hình ảnh tiếp trong tương lai

*

Trong bức tranh ở phí a trên cao, Server 1 giữ partition 0 và 3 và server 2 giữ những partition 1 và 2. Toàn bộ tất cả chúng ta có 2 consumer groups là A và B. Group A có 2 consumer và group B có 4 consumer. Consumer group A có 2 consumer, thế vì thế mỗi consumer sẽ đọc message từ 2 partition.Trong consumer group B, số lượng consumer bằng số partition nên mỗi consumer sẽ đọc message khởi hành điểm xuất phát điểm từ một partition. Kafka tuân theo một số lao lý được cung cấp bởi broker và consumer. Nghĩa là kafka không tuân theo dõi những record được đọc bởi consumer và vì thế chưa minh chứng và khẳng định gì về biện pháp hành động của consumer. Việc giữ lại những messages trong một khoảng thời gian được thông số kỹ thuật kỹ thuật trước và nó tùy từng consumer, để căn chỉnh thời điểm sao để cho hợp lý và phải chăng. Bản thân consumer sẽ tìm hiểu và khám phá xem Kafa có message nào mới hay không và cho Kafka biết những record nào chúng muốn đọc. Vấn đề này được cho phép chúng tăng/giảm offset mà consumer muốn, vì thế chúng rất rất có khả năng đọc lại những message đã được đọc rồi và tái xử lý và giải quyết và xử lý những sự kiện trong trường hợp gặp sự cố. Ví dụ: nếu Kafka được thông số kỹ thuật kỹ thuật để giữ những messages tồn tại trong một ngày và consumer bị down dài lâu 1 ngày, khi đó consumer sẽ mất message. Tuy nhiên, nếu consumer chỉ bị down trong khoảng tầm chừng 1h đồng hồ đeo tay đeo tay đeo tay, khi đó nó hoàn hảo nhất rất rất có khả năng bắt đầu đọc lại message từ offset tiên tiến và phát triển nhất.

Xem Ngay:  Pnl Là Gì - Lợi Nhuận Và Thua Lỗ P&l

Sức ảnh hưởng của Zookeeper

Zookeeper đóng sức ảnh hưởng là Vị trí lưu trữ dữ liệu phân tán dạng key-value. Nó được tối ưu hóa cho tác vụ đọc nhanh nhưng ghi chậm. Kafka dùng Zookeeper để tiến hành triển khai việc reviews leader của Kafka broker và topic partition. Zookeeper rất được thiết kế theo phong cách cho kiến thức và kỹ năng chịu lỗi cao, vì thế Kafka phụ thuộc không ít vào Zookeeper. Nó cũng khá được dùng để lưu trữ toàn bộ tổng thể toàn diện và tổng thể metadata như là: Offset cho mỗi partition của consumer groupACL (Access control list) – được dùng cho việc con số số lượng giới hạn truy cập/ủy quyềnQuota của consumer/producer – số lượng message tối đa mỗi giâyPartition Leader và trạng thái của chúng Producer và consumer không tương tác trực tiếp với Zookeeper để biết leader của partition hay những metadata khác, ngoài ra chúng sẽ truy vấn metadata tới Kafka broker – sau đó Kafka tương tác với Zookeeper và gửi comment metadata về lại cho chúng. Xem Ngay: Xml Là Gì? Hướng Dẫn Một Số Phương pháp Mở File Xml Là Gì

Tóm lại

Kafka đang nhanh chóng trở thành trụ cột của đường ống dữ liệu so với bất kể tổ chức triển khai tiến hành nào. Kafka được cho phép bạn có một lượng to những messages đi qua một phương tiện đi lại di chuyển và đi lại tập trung chuyên sâu sâu xa và lưu trữ chúng mà không cần phải lo sợ gì về những vấn đề như hiệu suất hay mất mát dữ liệu. Kafka rất rất có khả năng là thành phần giữa trung tâm trong loại hình bản vẽ thiết kế xây dựng hướng sự kiện (sự kiện-driven) và được phép bạn phân tách giữa ứng dụng này với ứng dụng khác. Thể Loại: Giải bày Kiến Thức Cộng Đồng

Bài Viết: Apache Kafka Là Gì – Series Tìm Hiểu Apache Kafka (Phần 1) Thể Loại: LÀ GÌ Nguồn Blog là gì: https://hethongbokhoe.com Apache Kafka Là Gì – Series Tìm Hiểu Apache Kafka (Phần 1)

Leave a Reply

Your email address will not be published.