Mẫu hướng sự kiện với EventBridge

Triển khai Ứng dụng trên AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Một đơn hàng, bốn phản ứng

  • Một đơn hàng phải đến billing, fulfillment, analytics, email
  • Gọi trực tiếp cả bốn dịch vụ vừa mong manh vừa chậm
  • Một sự kiện fan-out đến mọi bên tiêu thụ

Một sự kiện tỏa ra từ một chủ đề trung tâm đến nhiều dịch vụ hạ lưu song song

Triển khai Ứng dụng trên AWS

Chọn đúng dịch vụ nhắn tin

Lưới 2x2 các dịch vụ nhắn tin của AWS: hàng đợi SQS với luồng producer-consumer, SNS pub/sub fan-out đến nhiều subscriber, EventBridge event bus với định tuyến theo quy tắc, và Kinesis các shard có thứ tự với khả năng phát lại

  • SQS: một hàng đợi, một nhóm consumer, at-least-once
  • SNS: pub/sub, đẩy một message đến nhiều subscriber
  • EventBridge: định tuyến sự kiện theo nội dung đến nhiều đích
  • Kinesis Data Streams: có thứ tự, có thể phát lại
Triển khai Ứng dụng trên AWS

Mẫu fan-out

  • Một sự kiện phải đến nhiều consumer cùng lúc
  • Publish lên một chủ đề SNS
  • Mỗi hàng đợi SQS đăng ký chủ đề đó
  • Mỗi consumer nhận bản sao riêng, tách rời nhau

Mẫu fan-out SNS-to-SQS: một chủ đề SNS publish đến nhiều hàng đợi SQS, mỗi hàng đợi phục vụ consumer của mình với tốc độ riêng

Triển khai Ứng dụng trên AWS

Lọc để consumer chỉ nhận thứ cần

  • Không lọc thì mọi subscriber nhận mọi sự kiện
  • Chính sách lọc subscription của SNS: lọc theo thuộc tính message
  • Bộ lọc nội dung EventBridge: khớp theo field của sự kiện
  • Mỗi consumer chỉ nhận sự kiện liên quan

Chính sách lọc subscription của SNS và bộ lọc nội dung EventBridge: mỗi consumer chỉ nhận sự kiện khớp quy tắc lọc, giảm xử lý thừa và chi phí

Triển khai Ứng dụng trên AWS

Định tuyến với EventBridge

Sơ đồ định tuyến EventBridge: event bus nhận sự kiện từ nhiều nguồn, quy tắc khớp mẫu sự kiện, và sự kiện khớp được gửi đến Lambda, SQS và các dịch vụ đích khác

  • Event bus: nhận sự kiện từ nhiều nguồn
  • Rule: mẫu sự kiện khớp một số sự kiện
  • Target: nơi gửi sự kiện đã khớp
  • Một sự kiện có thể định tuyến đến nhiều đích
Triển khai Ứng dụng trên AWS

Streaming với Kinesis Data Streams

  • Luồng bản ghi liên tục, thời gian thực
    • Bản ghi có thứ tự trong một shard
    • Phát lại: consumer đọc lại từ bất kỳ điểm nào
    • Nhiều consumer đọc cùng stream một cách độc lập
    • Dùng cho clickstream, telemetry, dữ liệu thông lượng cao

Kiến trúc Kinesis Data Streams: producer ghi bản ghi có thứ tự vào các shard được đánh số, ba consumer đọc độc lập tại các vị trí khác nhau, với mũi tên tua lại thể hiện khả năng phát lại

Triển khai Ứng dụng trên AWS

Lambda như một consumer sự kiện

  • Lambda có thể được kích hoạt bởi SQS, SNS, EventBridge, Kinesis
  • Event source mapping tự động poll SQS và Kinesis
  • SNS và EventBridge push sự kiện vào Lambda
  • Xử lý gần thời gian thực, không cần quản lý server

Lambda được kích hoạt bởi bốn nguồn sự kiện: event source mapping poll SQS và Kinesis theo batch, trong khi SNS và EventBridge đẩy sự kiện trực tiếp vào Lambda

Triển khai Ứng dụng trên AWS

Cùng luyện tập nào!

Triển khai Ứng dụng trên AWS

Preparing Video For Download...