Triển khai một tình huống nhắn tin phát tán bằng Amazon Simple Notification Service (SNS) Amazon Simple Queue Service (SQS). Trong tình huống này, các tin nhắn được "đẩy" đến nhiều người đăng ký, giúp loại bỏ nhu cầu thực hiện các cuộc kiểm tra hoặc thăm dò ý kiến định kỳ về các bản cập nhật và cho phép người đăng ký xử lý tin nhắn không đồng bộ song song.

Để minh họa điều này, chúng tôi sẽ giả định rằng bạn đang phát triển một ứng dụng hoạt động trên đám mây gửi tin nhắn Amazon SNS đến một chủ đề bất cứ khi nào có đơn đặt hàng trên một cửa hàng trực tuyến. Hàng đợi Amazon SQS được đăng ký theo chủ đề đó sẽ nhận được thông báo như nhau cho đơn đặt hàng mới.

Dịch vụ AWS bạn dùng trong hướng dẫn này nằm trong Bậc miễn phí của AWS.

Gửi thông báo phát tán sự kiện trên AWS yêu cầu phải có tài khoản

Tạo tài khoản miễn phí

Bậc miễn phí AWS bao gồm 1.000.000 đăng tải cho Amazon Simple Notification Service và 1.000.000 yêu cầu Amazon Simple Queue Service.

Xem chi tiết về Bậc miễn phí của AWS »

 

Khi bạn nhấp vào đây, Bảng điều khiển quản lý AWS sẽ mở ra trong cửa sổ trình duyệt mới để bạn có thể giữ hướng dẫn từng bước này luôn mở. Khi màn hình tải xong, nhập tên người dùng và mật khẩu để bắt đầu. Sau đó nhập thông báo trong thanh tìm kiếm và chọn Dịch vụ thông báo đơn giản để mở bảng điều khiển dịch vụ.

tmt_send-fanout-event-notifications_1a

(nhấp để thu phóng)

tmt_send-fanout-event-notifications_1a

a. Nếu trang đích bảng điều khiển SNS xuất hiện, nhấp vào Bước tiếp theo.

1a-sns-console-home

(nhấp để thu phóng)

1a-sns-console-home

Trong bước này, bạn sẽ tạo một chủ đề Amazon SNS. Một chủ đề là một kênh liên lạc để gửi tin nhắn và đăng ký thông báo. Trong ví dụ này, một ứng dụng thương mại điện tử mẫu sẽ đẩy một tin nhắn đến chủ đề Amazon SNS bất cứ khi nào có đơn đặt hàng mới trên cửa hàng trực tuyến. 


a.  Trong trang tạo chủ đề, gõ New-Orders, trong hộp thoại tên chủ đề, sau đó nhấp vàoTạo chủ đề.

2a-topic-create-wf

(nhấp để thu phóng)

2a-topic-create-wf

b. Trang chi tiết chủ đề xác nhận chủ đề được tạo thành công.

2b-topic-create-confirm

(nhấp để thu phóng)

2b-topic-create-confirm

Bây giờ bạn đã tạo chủ đề với Amazon SNS, bạn sẽ tạo hàng đợi SQS của Amazon để đăng ký chủ đề.

Khi bạn đăng ký nhiều hàng đợi cho một chủ đề, mỗi hàng đợi sẽ nhận được thông báo như nhau khi một tin nhắn được đẩy đến chủ đề. Các dịch vụ được đính kèm vào các hàng đợi sau đó có thể xử lý các đơn đặt hàng không đồng bộ và song song.

Ví dụ: một phiên bản máy chủ Amazon EC2 được đính kèm vào một trong các hàng đợi có thể thực hiện việc xử lý hoặc hoàn thành đơn đặt hàng, trong khi phiên bản máy chủ khác được đính kèm vào kho dữ liệu để phân tích tất cả các đơn đặt hàng nhận được.

Để đơn giản hóa, chúng tôi sẽ không thực sự đính kèm các phiên bản EC2 vào hàng đợi trong hướng dẫn này.


a. Nhấp vào đây để mở bảng điều khiển Amazon SQS trong cửa sổ trình duyệt mới. Nếu trang đích SQS xuất hiện, nhấp vào Bắt đầu ngay. Nếu không, tiến hành bước tiếp theo.

 

tmt_send-fanout-event-notifications_3a

(nhấp để thu phóng)

tmt_send-fanout-event-notifications_3a

b. Hàng đợi đầu tiên của chúng tôi sẽ lưu trữ các đơn đặt hàng cho Dịch vụ kiểm kê hư cấu để theo dõi các sản phẩm, thêm và xóa chúng khi cần trong kho với mỗi đơn đặt hàng.  

Trên trang Tạo hàng đợi mới, nhập Orders-for-Inventory trong trường Tên hàng đợi. Chọn Hàng đợi tiêu chuẩn và nhấp vào Tạo nhanh hàng đợi.

tmt_send-fanout-event-notifications_3b

(nhấp để thu phóng)

tmt_send-fanout-event-notifications_3b

c. Hàng đợi mới của bạn được tạo và được lựa chọn trong danh sách hàng đợi. Tiếp theo, bạn sẽ tạo một hàng đợi thứ hai để xử lý các phân tích đơn đặt hàng.

Nhấp vào Tạo hàng đợi mới để tạo hàng đợi khác để lưu trữ các đơn đặt hàng cho dịch vụ Phân tích.

tmt_send-fanout-event-notifications_3c

(nhấp để thu phóng)

tmt_send-fanout-event-notifications_3c

d. Nhập Orders-for-Analytics trong trường Tên hàng đợi và nhấp vàp Tạo nhanh hàng đợi

tmt_send-fanout-event-notifications_3d

(nhấp để thu phóng)

tmt_send-fanout-event-notifications_3d

e. Hàng đợi mới hiện xuất hiện trong danh sách hàng đợi.

tmt_send-fanout-event-notifications_3e

(nhấp để thu phóng)

tmt_send-fanout-event-notifications_3e

Bây giờ bạn đã tạo hai hàng đợi Amazon SQS của mình, bạn cần đăng ký chúng vào chủ đề Amazon SNS để truyền phát thông báo cho các đơn đặt hàng mới.


a. Từ danh sách hàng đợi, chọn hàng đợi Orders-for-InventoryOrders-for-Analytics. Từ Hành động hàng đợi, chọn Đăng ký hàng đợi vào chủ đề SNS.

tmt_send-fanout-event-notifications_4a

(nhấp để thu phóng)

tmt_send-fanout-event-notifications_4a

b. Hộp thoại Đăng ký vào chủ đề được hiển thị. Từ danh sách thả xuống Chọn một chủ đề, chọn chủ đề SNS New-Orders.

Chủ đề SNS của bạn xuất hiện trong danh sách vì bạn đã tạo nó từ cùng một tài khoản mà bạn đã sử dụng để tạo hàng đợi Amazon SQS của mình. Nếu chủ đề SNS được tạo bởi một tài khoản khác, bạn có thể đăng ký chủ đề đó bằng cách sử dụng ARN chủ đề. Để biết thêm chi tiết, hãy xem tài liệu Amazon SNS.

Không thay đổi Khu vực chủ đề và nhấp vào Đăng ký.  

tmt_send-fanout-event-notifications_4b

(nhấp để thu phóng)

tmt_send-fanout-event-notifications_4b

c. Hộp thoại Kết quả đăng ký chủ đề được hiển thị. Nhấp vào OK.

tmt_send-fanout-event-notifications_4c

(nhấp để thu phóng)

tmt_send-fanout-event-notifications_4c

Hàng đợi của bạn hiện đang được đăng ký vào chủ đề. Trong bước này, bạn sẽ mô phỏng một đơn đặt hàng mới bằng cách yêu cầu ứng dụng thương mại điện tử hư cấu đẩy một tin nhắn đến chủ đề với các chi tiết đơn đặt hàng.


a. Trong bảng điều khiển Amazon SNS mục trang chi tiết chủ đề Đơn đặt hàng mới, nhấp vào Đẩy tin nhắn.

 

5a-topic-create-confirm

(nhấp để thu phóng)

5a-topic-create-confirm

b. Trang Đẩy tin nhắn đến chủ đề xuất hiện. Trong hộp nội dung chủ đề, gõ Đơn đặt hàng 123-4567890-1234567. Trên trường Tin nhắn, nhập văn bản sau để thể hiện một đơn đặt hàng mẫu:

1 x Widget @ 29.99 USD

2 x Widget Cables @ 4.99

Nhấp vào Đăng tải tin nhắn. Một hộp thoại xác nhận sẽ xuất hiện.

 

5b-sns-send-message-wf

(nhấp để thu phóng)

5b-sns-send-message-wf

Khi một tin nhắn mới được đẩy đi, Amazon SNS sẽ phân phối tin nhắn đó đến mọi điểm cuối được đăng ký theo chủ đề. Trong một tình huống phát tán như thế này, hàng đợi Amazon SQS chính là điểm cuối.

Trong bước này, bạn sẽ xác nhận các hàng đợi nhận được thông báo đơn đặt hàng mới bằng cách xem tin nhắn được chủ đề gửi đến hàng đợi.


a. Trong bảng điều khiển SQS của Amazon, đánh dấu chọn hộp he Orders-for-Inventory từ danh sách hàng đợi. Từ danh sách thả xuống Hành động hàng đợi, chọn Xem/xóa tin nhắn.

 

tmt_send-fanout-event-notifications_6a

(nhấp để thu phóng)

tmt_send-fanout-event-notifications_6a

b. Nhấp vào Bắt đầu thăm dò cho tin nhắn.


tmt_send-fanout-event-notifications_6b

(nhấp để thu phóng)

tmt_send-fanout-event-notifications_6b

c. Hộp thoại Xem/Xóa tin nhắn trong Orders-for-Inventory xuất hiện.

tmt_send-fanout-event-notifications_6c

(nhấp để thu phóng)

tmt_send-fanout-event-notifications_6c

d. Trong cột nội dung, nhấp vào Chi tiết khác. Hộp Chi tiết tin nhắn có tài liệu JSON chứa chủ đề và tin nhắn mà bạn đã đẩy đến chủ đề.  

Bạn đã xác nhận hàng đợi Orders-for-Inventory đã nhận được thông báo về đơn hàng mới từ chủ đề New-Orders .  

Nhấp vào Đóng.

 

tmt_send-fanout-event-notifications_6d

(nhấp để thu phóng)

tmt_send-fanout-event-notifications_6d

e. Chúng tôi giả định rằng Dịch vụ kiểm kê hư cấu của chúng tôi đã hoàn tất xử lý tin nhắn này và hiện tại chúng tôi có thể xóa tin nhắn khỏi hàng đợi một cách an toàn. 

Nhấp vào Xóa 1 tin nhắn. Để xác nhận, nhấp vào Có, xóa tin nhắn đã chọn. Sau đó nhấp vào Đóng.

 

tmt_send-fanout-event-notifications_6e

(nhấp để thu phóng)

tmt_send-fanout-event-notifications_6e

f. Lặp lại các bước 6a đến 6e để xác nhận rằng hàng đợi Orders-for-Analytics cũng nhận được thông báo về đơn đặt hàng mới.

tmt_send-fanout-event-notifications_6f

(nhấp để thu phóng)

tmt_send-fanout-event-notifications_6f

Trong bước này, bạn sẽ xóa các tài nguyên bạn đã tạo cho hướng dẫn này, bao gồm đăng ký chủ đề, chủ đề và hàng đợi. Đó là thực hành tốt nhất để xóa các tài nguyên bạn không còn sử dụng nữa vì vậy bạn không phải trả phí.


a.Mở bảng điều khiển Amazon SNS và nhấp vào Chủ đề trong ngăn điều hướng bên trái.

Chọn chủ đề New-Orders.

Nhấp vào Xóa để xóa các chủ đề.

 

7a

(nhấp để thu phóng)

7a

b. Hộp thoại xác nhận Xóa xuất hiện. Gõ xóa tôi trong hộp thoại và nhấp vào Xóa. Chủ đề và đăng ký của chủ đề đều bị xóa. Bây giờ bạn có thể đóng cửa sổ trình duyệt SNS (nhưng không đăng xuất, vì bạn vẫn cần xóa hàng đợi trong bảng điều khiển SQS).

7b

(nhấp để thu phóng)

7b

c. Từ bảng điều khiển Amazon SQS, chọn hàng đợi Orders-for-InventoryOrders-for-Analytics. Từ Hành động hàng đợi, chọn Xóa hàng đợi.


tmt_send-fanout-event-notifications_7c

(nhấp để thu phóng)

tmt_send-fanout-event-notifications_7c

d. Hộp thoại Xóa hàng đợi được hiển thị. Nhấp vào Có, xóa 2 hàng đợi. Các hàng đợi bị xóa.

Giờ bạn có thể đăng suất khỏi bảng điều khiển Amazon SQS.

tmt_send-fanout-event-notifications_7d

(nhấp để thu phóng)

tmt_send-fanout-event-notifications_7d

Bạn đã triển khai một tình huống phát tán sử dụng Amazon SNS và Amazon SQS. Hiện tại bạn đã sẵn sàng sử dụng kết hợp Amazon SNS và Amazon SQS để phân phối các tin nhắn đến các ứng dụng yêu cầu thông báo ngay lập tức về sự kiện hoặc để đệm tin nhắn trong hàng đợi Amazon SQS để các ứng dụng khác xử lý sau.

 


Bây giờ bạn đã biết cách triển phát tán thông báo bằng cách sử dụng Amazon Simple Notification Service và Amazon Simple Queue Service, hãy chọn một trong các tùy chọn sau để tìm hiểu sâu hơn về tin nhắn đám mây trên AWS.

Tìm hiểu thêm

Nhận tổng quan về các khả năng, thành phần và trường hợp sử dụng cho các chủ đề tin nhắn trên Amazon Web Services (AWS). Truy cập trang web Amazon SNS »

Phân tích chuyên sâu hơn

Khám phá cách bật ứng dụng, người dùng cuối và thiết bị để gửi và nhận thông báo ngay lập tức từ đám mây. Đọc tài liệu »

Quan sát cách thức hoạt động

Hãy nghe cách các khách hàng như Capital One sử dụng Amazon SQS và Amazon SNS để khử liên kết và mở rộng quy mô các ứng dụng. Xem hội thảo trực tuyến »

Không