Mẫu Saga trong AWS là gì?

Mau Saga Trong Aws La Gi



Các ứng dụng đang chuyển sang kiến ​​trúc phân tán và vi dịch vụ. Nó gây rắc rối trong việc duy trì dữ liệu và quản lý các giao dịch phức tạp. Các mẫu Saga đưa ra một giải pháp hiệu quả. Amazon Web Services (AWS) cung cấp nhiều công cụ và dịch vụ giúp việc triển khai các mẫu Saga trở nên đơn giản. Nó đảm bảo quản lý giao dịch liền mạch trên các ứng dụng phân tán.

Bài viết này sẽ giải thích các mẫu saga là gì, các thành phần của chúng, các dịch vụ AWS được hỗ trợ và lợi ích của chúng.







Mẫu Saga trong AWS là gì?

Các mẫu Saga là một kỹ thuật thiết kế trong kiến ​​trúc vi dịch vụ để giúp phân phối giao dịch trên các dịch vụ khác tương tác để tạo quy trình kinh doanh. Việc thực thi một giao dịch trên nhiều dịch vụ siêu nhỏ có thể gây ra một số khó khăn như vấn đề về tính nhất quán của dữ liệu và lỗi hệ thống.



Mẫu Saga hoạt động bằng cách chia các giao dịch phân tán thành các giao dịch nhỏ hơn được gọi là “Bước đi Saga” . Mỗi 'Bước Saga' đại diện cho một hoạt động liên quan đến microservice. Nếu một hoặc nhiều “Bước đi Saga” không thành công, các hành động cần thiết sẽ được thực hiện ngay lập tức để khôi phục trạng thái ứng dụng. Tham khảo hình ảnh dưới đây để hiểu hoạt động của mô hình saga:







Hãy để chúng tôi tìm hiểu về các thành phần chính của nó:

Thành phần của Mẫu Saga trong AWS là gì?

Một giải pháp microservice hoàn chỉnh yêu cầu một số dịch vụ trong kiến ​​trúc phân tán. Một mẫu saga có một vài thành phần chính, chẳng hạn như:



  • bước saga
  • dàn nhạc Saga
  • Đền bù

Hãy để chúng tôi thảo luận ngắn gọn về các thành phần này.

bước saga

Các bước Saga là các hoạt động hoặc tác vụ vi dịch vụ được thực hiện như một phần của giao dịch phân tán không có tác dụng phụ tiêu cực. Chúng được lặp đi lặp lại nhiều lần và không có tác dụng phụ nào xảy ra khi thực hiện lặp đi lặp lại.

dàn nhạc Saga

Trách nhiệm chính của người dàn dựng saga là quản lý và giám sát từng bước trong quá trình hoàn thành thành công saga. Nó bắt đầu các giao dịch phân tán khi các bước thích hợp được thực hiện. Nó cũng cung cấp bồi thường nếu bất kỳ bước nào không thành công.

Đền bù

Khi gặp lỗi trong quá trình saga, bộ điều phối của nó sẽ thực hiện các hành động nhanh chóng và quyết đoán để thay đổi lại các sửa đổi được đưa ra bởi các bước trước đó. Điều này đảm bảo rằng hệ thống duy trì trật tự ngay cả trong trường hợp có lỗi.

Đây là những thành phần chính của một mô hình saga. Hãy để chúng tôi thảo luận về các dịch vụ AWS hỗ trợ các mẫu saga.

Các mẫu Saga dịch vụ được hỗ trợ trong AWS là gì?

Đây là những dịch vụ do Amazon cung cấp theo mô hình saga:

  • Hàm bước AWS
  • AWS Lambda
  • Amazon DynamoDB
  • Amazon SNS và SQS
  • Cổng API Amazon
  • CDK AWS
  • AWS SAM

Hàm bước AWS

Amazon Web Services Step Functions là một dịch vụ được quản lý hoàn toàn được thiết kế để hỗ trợ quản lý quy trình công việc và vi dịch vụ bằng cách cung cấp cho nhà phát triển các máy trạng thái đại diện cho các máy trạng thái phức tạp (mẫu saga). Các nhà phát triển có thể thiết kế các giao dịch phân tán bằng cách sử dụng Step Functions trong khi sắp xếp chúng một cách hiệu quả.

AWS Lambda

Dịch vụ máy tính không máy chủ Lambda của Amazon Web Services cho phép các nhà phát triển chạy mã mà không cần trực tiếp quản lý máy chủ. Nó làm cho các mẫu saga có thể thực hiện được bằng cách tạo các hàm Lambda đại diện cho từng bước ở cấp cơ sở. Các nhà phát triển sử dụng các hàm Lambda để biểu diễn các bước có thể sử dụng nó một cách hiệu quả khi biểu diễn các bước saga riêng lẻ thông qua Lambdas.

Amazon DynamoDB

Amazon DynamoDB là dịch vụ cơ sở dữ liệu NoSQL của AWS được quản lý toàn phần. Nó cung cấp các tùy chọn lưu trữ dữ liệu đáng tin cậy. Người điều phối Saga có thể sử dụng DynamoDB để theo dõi các giao dịch được phân phối khi chúng tiến triển.

Amazon SNS và SQS

Để tạo giao tiếp theo sự kiện giữa các vi dịch vụ Amazon Simple Notification Service (SNS) và Simple Queue Service (SQS) được kết hợp. Các bước Saga sử dụng các dịch vụ này để xuất bản thông báo tới các vi dịch vụ khác sau khi thực hiện các thao tác cụ thể. Sau đó, các dịch vụ này sẽ thông báo cho các vi dịch vụ khác về trạng thái hoàn thành và cập nhật trạng thái.

Cổng API Amazon

Amazon API Gateway là một dịch vụ đám mây của Amazon để tạo, xuất bản và quản lý API. Các API này có thể được thu nhỏ theo bất kỳ cấp độ mong muốn nào. Dịch vụ này kết nối người dùng với AWS Lambda. Lambda được kết nối thêm với các chức năng bước tuân theo các mẫu saga.

CDK AWS

AWS Cloud Development Kit (CDK) là một khung và công cụ để tạo và triển khai các giải pháp đám mây tùy chỉnh. Nó là một dịch vụ mã nguồn mở. Các ứng dụng được xây dựng dựa trên kiến ​​trúc và thiết kế mẫu saga có thể được triển khai bằng công cụ này.

AWS SAM

Mô hình AWS Serverless Application được sử dụng để tạo các ứng dụng serverless. Khung này cũng là mã nguồn mở. Bất kỳ ứng dụng nào sử dụng mẫu saga đều có thể được tạo mà không cần cung cấp máy chủ sử dụng AWS SAM.

Đã có các dịch vụ AWS hỗ trợ các mẫu saga. Hãy để chúng tôi thảo luận về những lợi ích mà các mẫu saga mang lại.

Lợi ích của Mẫu Saga trong AWS là gì?

Dưới đây là một số lợi ích mà các mẫu saga mang lại:

  • Quản lý giao dịch phân tán
  • Tính nhất quán của dữ liệu
  • Khả năng chịu lỗi
  • khả năng mở rộng
  • Hãy để chúng tôi thảo luận về những lợi ích một cách chi tiết.

    Quản lý giao dịch phân tán

    Các mẫu Saga cung cấp giải pháp đơn giản nhưng hiệu quả để xử lý các giao dịch phân tán trong kiến ​​trúc vi dịch vụ. Bằng cách chia nhỏ các giao dịch thành các bước có thể quản lý, chúng giúp hợp lý hóa các quy trình công việc phức tạp.

    Tính nhất quán của dữ liệu

    Các hành động bù trừ được thiết kế để duy trì tính nhất quán của dữ liệu ngay cả khi xảy ra lỗi một phần hệ thống và một phần giao dịch. Các nhà phát triển có thể đạt đến trạng thái cân bằng bất kể kết quả giao dịch trong các hệ thống phân tán bằng cách sử dụng các mẫu saga.

    Khả năng chịu lỗi

    Các mẫu Saga cung cấp kiến ​​trúc vi dịch vụ với khả năng chịu lỗi được cải thiện bằng cách xử lý lỗi ở từng cấp bước và bù lỗi. Do đó, các hệ thống sử dụng chúng có thể phục hồi nhanh chóng sau các lỗi giao dịch một phần mà không ảnh hưởng đến hiệu suất ứng dụng tổng thể.

    khả năng mở rộng

    Các mẫu Saga cung cấp khả năng mở rộng theo chiều ngang, cho phép các hệ thống xử lý khối lượng giao dịch tăng lên bằng cách thêm nhiều phiên bản vi dịch vụ hơn. Tính linh hoạt như vậy là vô giá đối với các ứng dụng hiện đại phải xử lý hiệu quả khối lượng công việc luôn biến động.

    Đây là tất cả về các mẫu saga cũng như các thành phần và cách sử dụng của chúng trong các dịch vụ AWS.

    Phần kết luận

    Các mẫu Saga cung cấp một cách tiếp cận hiệu quả để xử lý các giao dịch phân tán trong kiến ​​trúc vi dịch vụ. AWS Step Functions, Lambda, DynamoDB, SNS và SQS chỉ là một vài dịch vụ AWS hỗ trợ mẫu này. Bài viết này đã giải thích toàn diện mô hình saga và hoạt động của nó.