Hệ thống streaming phổ biến

Các khái niệm về Streaming

Mike Metzger

Data engineer

Công cụ streaming

  • nhiều công cụ tùy nhu cầu
  • Cho phép chọn công cụ phù hợp nhất
  • Hệ thống phổ biến gồm:
    • Celery
    • Kafka
    • Spark Streaming

Celery

Apache Kafka

Spark Streaming

Các khái niệm về Streaming

Celery

  • Hàng đợi tác vụ phân tán / FIFO
  • Chủ yếu dùng làm hàng đợi job hoặc tác vụ
  • Thường cho tác vụ bất đồng bộ
    • Gửi email đặt lại mật khẩu
    • Xử lý đơn hàng số
    • Thay đổi kích thước ảnh
  • Cho phép xử lý thời gian thực lượng lớn thông điệp
  • Hỗ trợ quản lý và mở rộng (dọc & ngang)

Dự án Celery

Các khái niệm về Streaming

Apache Kafka

  • Hệ thống stream sự kiện phân tán
  • Thiết kế để gửi sự kiện giữa producerconsumer
    • Producer tạo sự kiện trên một topic
    • Topic về cơ bản là thông điệp theo mẫu xác định
    • Consumer nhận sự kiện mới
  • Các consumer khác nhau có thể xử lý tùy nhu cầu (log, biến đổi, chuyển tiếp, v.v.)
  • Quản lý lưu trữ sự kiện theo cấu hình
  • Rất mạnh, nhưng khó thiết lập

Apache Kafka

Các khái niệm về Streaming

Ứng dụng của Kafka

  • Tốt nhất để truyền dữ liệu giữa nhiều hệ thống
    • Nguồn dữ liệu duy nhất, đáng tin
    • Ghi nhận thay đổi dữ liệu (CDC)
    • Sao lưu dữ liệu
    • Di trú hệ thống dữ liệu
Các khái niệm về Streaming

Spark Streaming

  • Một phần của Apache Spark
  • Thiết kế để xử lý dữ liệu streaming
  • Mở rộng khả năng của Spark để xử lý bằng Scala, Python, SQL, v.v.
  • Hữu ích cho xử lý khối lượng lớn và bài toán machine learning
  • Dễ chuyển từ batch sang stream
  • Không nhằm lưu trữ/ghi log sự kiện, chủ yếu để xử lý/chỉnh sửa dữ liệu

Apache Spark

Các khái niệm về Streaming

Luyện tập nào!

Các khái niệm về Streaming

Preparing Video For Download...