Apache Kafka: Hệ thống nhắn tin phân tán thế hệ tiếp theo



Apache Kafka cung cấp hệ thống nhắn tin có thông lượng cao và khả năng mở rộng khiến nó trở nên phổ biến trong phân tích thời gian thực. Tìm hiểu cách hướng dẫn Apache kafka có thể giúp bạn

Trong thế giới ngày nay, dữ liệu là thành phần chính ứng dụng internet và thường bao gồm những điều sau:





  • Lượt truy cập trang và nhấp chuột
  • Hoạt động của người dùng
  • Sự kiện tương ứng với đăng nhập
  • Các hoạt động trên mạng xã hội như thích, chia sẻ và bình luận
  • Các chỉ số dành riêng cho ứng dụng (ví dụ: nhật ký, thời gian tải trang, hiệu suất, v.v.)

Điều này dữ liệu có thể được sử dụng để chạy phân tích trong thời gian thực phục vụ các mục đích khác nhau, một số trong số đó là:

  • Phân phối quảng cáo
  • Theo dõi các hành vi bất thường của người dùng
  • Hiển thị tìm kiếm dựa trên mức độ liên quan
  • Hiển thị các đề xuất dựa trên các hoạt động trước đó

Vấn đề: Việc thu thập tất cả dữ liệu không dễ dàng vì dữ liệu được tạo từ nhiều nguồn khác nhau ở các định dạng khác nhau



Giải pháp: Một trong những cách để giải quyết vấn đề này là sử dụng hệ thống nhắn tin. Hệ thống nhắn tin cung cấp sự tích hợp liền mạch giữa các ứng dụng phân tán với sự trợ giúp của tin nhắn.

apache-kafka-next-generation-distributed-messaging-system

Apache Kafka:



Apache Kafka là một hệ thống nhắn tin đăng ký xuất bản phân tán được phát triển ban đầu tại LinkedIn và sau đó trở thành một phần của dự án Apache. Kafka nhanh, linh hoạt, có thể mở rộng và phân phối theo thiết kế.

Kiến trúc và thuật ngữ Kafka:

Đề tài : Một luồng thông báo thuộc một danh mục cụ thể được gọi là chủ đề

Nhà sản xuất: Nhà sản xuất có thể là bất kỳ ứng dụng nào có thể xuất bản tin nhắn cho một chủ đề

Khách hàng : Người tiêu dùng có thể là bất kỳ ứng dụng nào đăng ký các chủ đề và sử dụng các tin nhắn

Người môi giới: Kafka cluster là một tập hợp các máy chủ, mỗi máy chủ được gọi là máy môi giới

Kafka có khả năng mở rộng và cho phép tạo nhiều loại cụm.

  • Cụm nhà môi giới đơn một nút
  • Cụm nhiều nhà môi giới một nút
  • Nhiều nút Nhiều cụm nhà môi giới

Nhà môi giới đơn một nút

Vai trò của ZooKeeper là gì?

Mỗi nhà môi giới Kafka phối hợp với các nhà môi giới Kafka khác bằng ZooKeeper. Nhà sản xuất và Người tiêu dùng được dịch vụ ZooKeeper thông báo về sự hiện diện của nhà môi giới mới hoặc lỗi của nhà môi giới trong hệ thống Kafka.

Một nút nhiều nhà môi giới

Nhiều nút Nhiều nhà môi giới

Kafka @ LinkedIn

LinkedIn Newsfeed được cung cấp bởi Kafka

lớp python __init__

Các đề xuất của LinkedIn được cung cấp bởi Kafka

Thông báo LinkedIn được cung cấp bởi Kafka

Ghi chú: Ngoài ra, LinkedIn còn sử dụng Kafka cho nhiều nhiệm vụ khác như theo dõi nhật ký, đo lường hiệu suất, cải thiện tìm kiếm, v.v.

Ai khác sử dụng Kafka?

DataSift: DataSift sử dụng Kafka làm công cụ thu thập các sự kiện theo dõi và theo dõi mức tiêu thụ luồng dữ liệu của người dùng trong thời gian thực

Wooga: Wooga sử dụng Kafka để tổng hợp và xử lý dữ liệu theo dõi từ tất cả các trò chơi trên Facebook của họ (được lưu trữ tại các nhà cung cấp khác nhau) ở một vị trí trung tâm

Spongecell: Spongecell sử dụng Kafka để chạy toàn bộ phân tích và giám sát đường ống dẫn động cả ứng dụng thời gian thực và ETL

Loggly: Loggly là công cụ quản lý nhật ký dựa trên đám mây phổ biến nhất trên thế giới. Nó sử dụng Kafka để thu thập nhật ký.

Nghiên cứu so sánh: Kafka so với ActiveMQ và RabbitMQ

Kafka có định dạng lưu trữ hiệu quả hơn. Trung bình, mỗi thư có tổng chi phí là 9 byte trong Kafka, so với 144 byte trong ActiveMQ

Trong cả ActiveMQ và RabbitMQ, các nhà môi giới duy trì trạng thái phân phối của mọi tin nhắn bằng cách ghi vào đĩa nhưng trong trường hợp của Kafka, không có ghi đĩa, do đó làm cho nó nhanh hơn.

Với việc áp dụng rộng rãi Kafka trong sản xuất, nó có vẻ là một giải pháp đầy hứa hẹn để giải quyết các vấn đề trong thế giới thực. Đào tạo Apache Kafka có thể giúp bạn đi trước các đồng nghiệp của mình trong sự nghiệp phân tích thời gian thực. Bắt đầu với hướng dẫn Apache Kafka đây .

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần bình luận và chúng tôi sẽ liên hệ lại với bạn.

Bài viết liên quan:

Những gì bạn cần cho sự nghiệp trong Phân tích thời gian thực