Apache Kafka - Giới thiệu
Trong Dữ liệu lớn, một khối lượng dữ liệu khổng lồ được sử dụng. Về dữ liệu, chúng tôi có hai thách thức chính, thách thức đầu tiên là làm thế nào để thu thập khối lượng lớn dữ liệu và thách thức thứ hai là phân tích dữ liệu đã thu thập. Để vượt qua những thách thức đó, bạn phải cần một hệ thống nhắn tin.
Kafka được thiết kế cho các hệ thống thông lượng cao phân tán. Kafka có xu hướng hoạt động rất tốt như một sự thay thế cho một nhà môi giới tin nhắn truyền thống hơn. So với các hệ thống nhắn tin khác, Kafka có thông lượng tốt hơn, phân vùng tích hợp, sao chép và khả năng chịu lỗi vốn có, điều này làm cho nó phù hợp với các ứng dụng xử lý tin nhắn quy mô lớn.
Hệ thống nhắn tin là gì?
Hệ thống Nhắn tin chịu trách nhiệm chuyển dữ liệu từ ứng dụng này sang ứng dụng khác, vì vậy các ứng dụng có thể tập trung vào dữ liệu, nhưng không phải lo lắng về cách chia sẻ dữ liệu đó. Nhắn tin phân tán dựa trên khái niệm xếp hàng tin nhắn đáng tin cậy. Tin nhắn được xếp hàng đợi không đồng bộ giữa các ứng dụng khách và hệ thống nhắn tin. Có hai kiểu nhắn tin - một kiểu là trỏ tới điểm và kiểu kia là hệ thống nhắn tin đăng ký xuất bản (pub-sub). Hầu hết các kiểu nhắn tin tuân theopub-sub.
Hệ thống nhắn tin điểm đến điểm
Trong hệ thống điểm-điểm, các thông báo được lưu trong hàng đợi. Một hoặc nhiều người tiêu dùng có thể sử dụng các thông báo trong hàng đợi, nhưng một thông điệp cụ thể chỉ có thể được sử dụng bởi tối đa một người tiêu dùng. Khi người tiêu dùng đọc một tin nhắn trong hàng đợi, tin nhắn đó sẽ biến mất khỏi hàng đợi đó. Ví dụ điển hình của hệ thống này là Hệ thống xử lý đơn hàng, trong đó mỗi đơn hàng sẽ được xử lý bởi một Bộ xử lý đơn hàng, nhưng Nhiều Bộ xử lý đơn hàng cũng có thể hoạt động cùng một lúc. Sơ đồ sau đây mô tả cấu trúc.
Xuất bản-Đăng ký Hệ thống nhắn tin
Trong hệ thống đăng ký xuất bản, các bài viết vẫn tồn tại trong một chủ đề. Không giống như hệ thống điểm-điểm, người tiêu dùng có thể đăng ký một hoặc nhiều chủ đề và xem tất cả các thông điệp trong chủ đề đó. Trong hệ thống Đăng ký-Xuất bản, nhà sản xuất tin nhắn được gọi là nhà xuất bản và người tiêu dùng tin nhắn được gọi là người đăng ký. Một ví dụ thực tế là Dish TV, nơi xuất bản các kênh khác nhau như thể thao, phim, âm nhạc, v.v. và bất kỳ ai cũng có thể đăng ký tập hợp kênh của riêng mình và tải chúng bất cứ khi nào có kênh đã đăng ký của họ.
Kafka là gì?
Apache Kafka là một hệ thống nhắn tin đăng ký xuất bản phân tán và một hàng đợi mạnh mẽ có thể xử lý khối lượng lớn dữ liệu và cho phép bạn chuyển các tin nhắn từ điểm cuối này đến điểm cuối khác. Kafka thích hợp cho cả việc sử dụng tin nhắn ngoại tuyến và trực tuyến. Các thông báo Kafka vẫn còn trên đĩa và được sao chép trong cụm để ngăn mất dữ liệu. Kafka được xây dựng dựa trên dịch vụ đồng bộ hóa ZooKeeper. Nó tích hợp rất tốt với Apache Storm và Spark để phân tích dữ liệu phát trực tuyến theo thời gian thực.
Những lợi ích
Sau đây là một số lợi ích của Kafka:
Reliability - Kafka được phân phối, phân vùng, sao chép và khả năng chịu lỗi.
Scalability - Hệ thống nhắn tin Kafka mở rộng quy mô dễ dàng mà không mất thời gian ..
Durability- Kafka sử dụng
Nhật ký cam kết phân tán có
nghĩa là các thông báo sẽ tồn tại trên đĩa nhanh nhất có thể, do đó nó bền ..Performance- Kafka có thông lượng cao cho cả việc xuất bản và đăng ký tin nhắn. Nó duy trì hiệu suất ổn định ngay cả khi nhiều TB tin nhắn được lưu trữ.
Kafka rất nhanh và đảm bảo không mất thời gian chết và không mất dữ liệu.
Trường hợp sử dụng
Kafka có thể được sử dụng trong nhiều Trường hợp sử dụng. Một số trong số chúng được liệt kê dưới đây -
Metrics- Kafka thường được sử dụng cho dữ liệu giám sát hoạt động. Điều này liên quan đến việc tổng hợp thống kê từ các ứng dụng phân tán để tạo ra nguồn cấp dữ liệu hoạt động tập trung.
Log Aggregation Solution - Kafka có thể được sử dụng trong một tổ chức để thu thập nhật ký từ nhiều dịch vụ và cung cấp chúng ở định dạng tiêu chuẩn cho nhiều kẻ lừa đảo.
Stream Processing- Các khung công tác phổ biến như Storm và Spark Streaming đọc dữ liệu từ một chủ đề, xử lý và ghi dữ liệu đã xử lý vào một chủ đề mới mà nó có sẵn cho người dùng và ứng dụng. Độ bền mạnh mẽ của Kafka cũng rất hữu ích trong bối cảnh xử lý dòng.
Cần cho Kafka
Kafka là một nền tảng thống nhất để xử lý tất cả các nguồn cấp dữ liệu thời gian thực. Kafka hỗ trợ gửi tin nhắn có độ trễ thấp và đảm bảo khả năng chịu lỗi trong trường hợp máy bị lỗi. Nó có khả năng xử lý một số lượng lớn người tiêu dùng đa dạng. Kafka rất nhanh, thực hiện 2 triệu lần ghi / giây. Kafka lưu giữ tất cả dữ liệu trên đĩa, về cơ bản có nghĩa là tất cả các lần ghi đều được chuyển vào bộ đệm trang của hệ điều hành (RAM). Điều này làm cho việc chuyển dữ liệu từ bộ đệm trang sang ổ cắm mạng rất hiệu quả.