Tổng quan

Câu hỏi: Amazon SQS có những lợi ích gì so với các hệ thống xếp hàng tin nhắn tự phát triển hay được đóng gói sẵn?

Amazon SQS cung cấp một số lợi thế so với việc xây dựng phần mềm của riêng bạn dành cho việc quản lý các hàng đợi tin nhắn hoặc sử dụng các hệ thống xếp hàng tin nhắn thương mại hoặc mã nguồn mở vốn yêu cầu rất nhiều thời gian để phát triển và cấu hình.

Các lựa chọn thay thế này đòi hỏi phải bảo dưỡng phần cứng liên tục và tiêu tốn tài nguyên quản trị hệ thống. Sự phức tạp của việc cấu hình và quản lý các hệ thống này còn được nhân lên bởi nhu cầu lưu trữ các tin nhắn không cần thiết để đảm bảo rằng tin nhắn không bị mất nếu phần cứng gặp trục trặc.

Trong khi đó, Amazon SQS không yêu cầu bất kỳ chi phí quản trị cố định nào và rất ít cấu hình. Amazon SQS hoạt động trên một quy mô khổng lồ, xử lý hàng tỷ tin nhắn mỗi ngày. Bạn có thể tăng hoặc giảm lưu lượng bạn gửi tới Amazon SQS mà không cần phải cấu hình gì. Amazon SQS cũng cung cấp độ bền tin nhắn vô cùng cao, giúp bạn và các bên liên quan thêm phần tự tin.

Câu hỏi: Amazon SQS có gì khác so với Amazon SNS?

Amazon SNS cho phép ứng dụng gửi các tin nhắn cấp thiết tới những người đăng ký thông qua một cơ chế “đẩy”, giúp triệt tiêu nhu cầu kiểm tra thường xuyên hoặc “kiểm soát vòng” để được cập nhật. Amazon SQS là một dịch vụ hàng đợi tin nhắn được sử dụng bởi các ứng dụng được phân phối để trao đổi tin nhắn thông qua một mô hình kiểm soát vòng và có thể được sử dụng để tháo gỡ các thành phần gửi đi và nhận về. 

Câu hỏi: Amazon SQS có gì khác so với Amazon MQ?

Nếu bạn đang nhắn tin bằng các ứng dụng hiện hành và muốn chuyển quá trình nhắn tin lên đám mây một cách nhanh chóng và dễ dàng, chúng tôi khuyến nghị bạn xem xét Amazon MQ. Amazon MQ hỗ trợ các API và quy trình tiêu chuẩn của ngành, do đó bạn có thể chuyển đổi từ bất kỳ chương trình trung chuyển tin nhắn dựa trên tiêu chuẩn nào sang Amazon MQ mà không phải viết lại mã nhắn tin trong ứng dụng của mình. Nếu bạn đang xây dựng các ứng dụng hoàn toàn mới trên đám mây, chúng tôi khuyến nghị bạn xem xét Amazon SQS và Amazon SNS. Amazon SQS và SNS là các dịch vụ hàng đợi tin nhắn và chủ đề được quản lý toàn phần, gọn nhẹ. Những dịch vụ này có thể thay đổi quy mô gần như bất tận và cung cấp các API đơn giản, dễ sử dụng. 

Câu hỏi: Amazon SQS có cho phép sắp xếp thứ tự tin nhắn không?

Có. Các hàng đợi FIFO (vào trước ra trước) sẽ giữ nguyên thứ tự các tin nhắn được gửi và được nhận. Nếu sử dụng một hàng đợi FIFO, bạn không cần phải đặt thông tin thứ tự trong tin nhắn của mình. Để biết thêm chi tiết, tham khảo Logic hàng đợi FIFO trong Hướng dẫn nhà phát triển Amazon SQS.

Các hàng đợi tiêu chuẩn có cung cấp một khả năng FIFO lỏng để cố gắng giữ nguyên thứ tự các tin nhắn. Tuy nhiên, do các hàng đợi tiêu chuẩn được thiết kế có quy mô cực kỳ linh hoạt sử dụng một kiến trúc có độ phân tán cao, nên việc nhận các tin nhắn theo đúng thứ tự khi được gửi đi sẽ không được đảm bảo.

Câu hỏi: Amazon SQS có đảm bảo việc gửi các tin nhắn không?

Các hàng đợi tiêu chuẩn cung cấp khả năng gửi ít-nhất-một-lần, có nghĩa rằng mỗi tin nhắn sẽ được gửi ít nhất một lần.

Hàng đợi FIFO cung cấp khả năng xử lý một-lần-duy-nhất, có nghĩa rằng mỗi tin nhắn sẽ được gửi đúng một lần và sẽ tiếp tục khả dụng cho đến khi có một khách hàng xử lý và xóa nó đi. Tin nhắn trùng lặp sẽ không được đưa vào hàng đợi.

Câu hỏi: Amazon SQS có gì khác so với Amazon Kinesis Streams?

Amazon SQS cung cấp một hàng đợi đáng tin cậy, với khả năng mở rộng cao dành cho việc lưu trữ tin nhắn trong khi chúng di chuyển giữa các ứng dụng hoặc các dịch vụ nhỏ. Amazon SQS sẽ di chuyển dữ liệu giữa các thành phần ứng dụng được phân phối và giúp bạn tháo gỡ các thành phần này. Amazon SQS cung cấp các kiến trúc trung gian thông dụng ví dụ như các hàng đợi thư-chết và quản lý chiến lược thuốc độc. Amazon SQS cũng cung cấp các API dịch vụ web thông thường và có thể được truy cập bởi bất kỳ ngôn ngữ lập trình nào mà AWS SDK hỗ trợ. Amazon SQS hỗ trợ cả hàng đợi tiêu chuẩn và hàng đợi FIFO.

Amazon Kinesis Streams cho phép xử lý thời gian thực cho việc phát dữ liệu lớn và khả năng đọc và thực hiện lại các bản ghi cho nhiều Ứng dụng Amazon Kinesis. Amazon Kinesis Client Library (KCL) sẽ chuyển tất cả các bản ghi dành cho một khóa phân vùng cụ thể tới cùng một bộ xử lý bản ghi, qua đó giúp bạn dễ dàng hơn trong việc xây dựng các ứng dụng có thể đọc từ cùng một luồng Amazon Kinesis (ví dụ: để thực hiện việc đếm, tập hợp và lọc).

Để biết thêm thông tin, tham khảo Tài liệu Amazon Kinesis.

Câu hỏi: Amazon có sử dụng Amazon SQS cho chính các ứng dụng của mình không?

Có. Các nhà phát triển tại Amazon sử dụng Amazon SQS cho rất nhiều các loại ứng dụng chuyên xử lý khối lượng lớn các tin nhắn mỗi ngày. Các quy trình kinh doanh trọng yếu ở cả Amazon.com và Amazon Web Services đều sử dụng Amazon SQS.

Tính phí

Câu hỏi: Amazon SQS có mức phí là bao nhiêu?

Bạn chỉ phải trả cho những gì bạn sử dụng và không có mức phí tối thiểu.

Chi phí cho Amazon SQS được tính theo yêu cầu, cộng thêm các phí di chuyển dữ liệu dành cho các dữ liệu được di chuyển ra khỏi Amazon SQS (trừ khi dữ liệu được di chuyển sang các phiên bản Amazon EC2 hoặc các chức năng AWS Lambda trong cùng một khu vực). Để xem liệt kê chi phí với mỗi loại hàng đợi và khu vực, tham khảo Giá cả Amazon SQS.

Câu hỏi: Tôi có thể làm gì với Bậc miễn phí của Amazon SQS?

Bậc miễn phí của Amazon SQS cung cấp cho bạn một triệu yêu cầu mỗi tháng và không tốn chi phí nào.

Có rất nhiều các ứng dụng quy mô nhỏ có thể hoạt động được hoàn toàn trong giới hạn của Bậc miễn phí. Tuy nhiên, các phí di chuyển dữ liệu vẫn có thể áp dụng. Để biết thêm thông tin, tham khảo Giá cả Amazon SQS.

Bậc miễn phí là một đề nghị theo tháng. Quyền sử dụng miễn phí sẽ không được tích trữ qua nhiều tháng.

Câu hỏi: Liệu tôi có bị tính phí cho mọi yêu cầu Amazon SQS không?

Có, cho bất kỳ yêu cầu nào vượt quá bậc miễn phí. Tất cả các yêu cầu Amazon SQS đều có thể tính phí và chúng được tính cùng một giá.

Câu hỏi: Các hoạt động hàng loạt của Amazon SQS có tốn phí nhiều hơn các yêu cầu khác không?

Không. Các hoạt động hàng loạt (SendMessageBatch, DeleteMessageBatchChangeMessageVisibilityBatch) đều có phí tương đương các yêu cầu Amazon SQS khác. Bằng cách nhóm tin nhắn thành các lô, bạn có thể giảm được chi phí Amazon SQS.

Câu hỏi: Tôi sẽ được tính phí như thế nào cho việc sử dụng Amazon SQS?

Không có bất kỳ chi phí khởi điểm nào để bắt đầu sử dụng Amazon SQS. Vào cuối tháng, thẻ tín dụng của bạn sẽ được tự động tính phí cho lượng sử dụng trong tháng đó.

Bạn có thể xem các lượt tính phí trong giai đoạn tính phí hiện tại bất cứ lúc nào tại trang web của AWS:

  1. Đăng nhập vào tài khoản AWS của bạn.
  2. Trong Tài khoản Dịch vụ web của bạn, chọn Hoạt động tài khoản.

Câu hỏi: Làm thế nào để tôi theo dõi và quản lý các chi phí có liên quan tới các hàng đợi Amazon SQS của mình?

Bạn có thể dán thẻ và theo dõi các hàng đợi để phục vụ quản lý tài nguyên và chi phí bằng cách sử dụng các thẻ phân bổ. Mỗi thẻ là một nhãn siêu dữ liệu bao gồm một cặp từ khóa-giá trị. Ví dụ: bạn có thể dán thẻ cho các hàng đợi của mình bằng trung tâm chi phí và sau đó phân loại và theo dõi các chi phí của mình dựa trên các trung tâm chi phí này.

Để biết thêm thông tin, tham khảo Dán thẻ các hàng đợi Amazon SQS trong Hướng dẫn nhà phát triển Amazon SQS. Để biết thêm thông tin về việc dán thẻ phân bổ chi phí cho các tài nguyên AWS, tham khảo Sử dụng các Thẻ phân bổ chi phí trong Hướng dẫn người dùng về Quản lý hóa đơn và chi phí AWS.

Câu hỏi: Các mức giá của bạn đã bao gồm thuế chưa?

Trừ khi có thông báo khác, các mức giá của chúng tôi không bao gồm bất cứ khoản thuế hay thuế hải quan áp dụng nào như thuế GTGT hay thuế doanh thu.

Đối với khách hàng có địa chỉ ghi hóa đơn ở Nhật Bản, việc sử dụng dịch vụ AWS tại bất kỳ khu vực nào cũng phải tuân thủ Thuế tiêu thụ của Nhật Bản. Để biết thêm thông tin, tham khảo FAQ về Thuế tiêu thụ Amazon Web Services.

Tính năng, chức năng và giao diện

Câu hỏi: Tôi có thể sử dụng Amazon SQS với các dịch vụ AWS khác?

Có. Bạn có thể giúp ứng dụng của mình trở nên linh hoạt và dễ thay đổi quy mô hơn bằng cách sử dụng Amazon SQS với các dịch vụ điện toán như Amazon EC2, Amazon EC2 Container Service (Amazon ECS) và AWS Lambda, cũng như với các dịch vụ lưu trữ và cơ sở dữ liệu như Amazon Simple Storage Service (Amazon S3) và Amazon DynamoDB.

Câu hỏi: Làm thế nào để tôi tương tác với Amazon SQS?

Bạn có thể truy cập vào Amazon SQS thông qua Bảng điều khiển quản lý AWS, giúp bạn tạo các hàng đợi Amazon SQS và gửi các tin nhắn một cách dễ dàng.

Amazon SQS cũng cung cấp API dịch vụ web. Amazon SQS cũng được tích hợp các AWS SDK, cho phép bạn làm việc với ngôn ngữ lập trình mà bạn lựa chọn.

Câu hỏi: Các hành động API nào có thể thực hiện với Amazon SQS?

Để biết thêm thông tin về các hoạt động hàng đợi tin nhắn, tham khảo Tham chiếu API Amazon SQS.

Câu hỏi: Ai có thể thực hiện các hoạt động lên một hàng đợi tin nhắn?

Chỉ có chủ sở hữu tài khoản AWS (hoặc một tài khoản AWS mà chủ sở hữu tài khoản đã ủy quyền) mới có thể thực hiện các hoạt động lên một hàng đợi tin nhắn Amazon SQS.

Câu hỏi: Tôi có thể sử dụng Java Message Service (JMS) với Amazon SQS không?

Có. Bạn có thể tận dụng quy mô, chi phí thấp và tính khả dụng cao của Amazon SQS mà không phải lo lắng về chi phí cố định cao của việc chạy cụm JMS của riêng mình.

Amazon cung cấp Thư viện tin nhắn Java Amazon SQS áp dụng đặc điểm kỹ thuật JMS 1.1 và sử dụng Amazon SQS dưới dạng nhà cung cấp JMS. Để biết thêm thông tin, tham khảo Sử dụng JMS với Amazon SQS trong Hướng dẫn nhà phát triển Amazon SQS.

Câu hỏi: Làm thế nào để Amazon SQS xác định các tin nhắn?

Tất cả các tin nhắn đều có một ID toàn cục riêng biệt mà Amazon SQS sẽ trả lại khi tin nhắn được được chuyển tới hàng đợi tin nhắn. ID này là không bắt buộc để thực hiện bất cứ hành động nào khác lên tin nhắn, nhưng ID sẽ hữu ích cho việc theo dõi biên lai của một tin nhắn nhất định trong hàng đợi tin nhắn.

Khi bạn nhận một tin nhắn từ hàng đợi tin nhắn, phản hồi sẽ bao gồm một tên biên lai mà bạn bắt buộc phải cung cấp khi xóa tin nhắn.

Để biết thêm thông tin, tham khảo Các nhận dạng hàng đợi và tin nhắn trong Hướng dẫn nhà phát triển Amazon SQS.

Câu hỏi: Amazon SQS làm việc thế nào với các tin nhắn không thể xử lý được?

Trong Amazon SQS, bạn có thể sử dụng API hoặc bảng điều khiển để cấu hình các hàng đợi thư chết, cũng là những hàng đợi tiếp nhận tin nhắn từ các hàng đợi nguồn khác.

Nếu bạn cho một hàng đợi trở thành một hàng đợi thư chết, hàng đợi này sẽ tiếp nhận các tin nhắn sau khi số lần thử xử lý không thành công đạt đến tối đa. Bạn có thể sử dụng các hàng đợi thư chết để cô lập các tin nhắn không thể xử lý để sau này phân tích.

Để biết thêm thông tin, tham khảo "Tôi có thể sử dụng hàng đợi thư chết với các hàng đợi FIFO không?" tại trang này và Sử dụng các hàng đợi thư chết của Amazon SQS trong Hướng dẫn nhà phát triển Amazon SQS.

Câu hỏi: Thời gian ngắt hiển thị tạm thời là gì?

Thời gian ngắt hiển thị là một khoảng thời gian mà ở đó Amazon SQS ngăn không cho các thành phần tiêu thụ khác tiếp nhận và xử lý một tin nhắn. Để biết thêm thông tin, tham khảo Thời gian ngắt hiển thị tạm thời trong Hướng dẫn nhà phát triển Amazon SQS.

Câu hỏi: Amazon SQS có hỗ trợ siêu dữ liệu tin nhắn hay không?

Có. Một tin nhắn Amazon SQS có thể chứa tới 10 thuộc tính siêu dữ liệu. Bạn có thể sử dụng các thuộc tính tin nhắn để tách rời nội dung một tin nhắn ra khỏi siêu dữ liệu mô tả tin nhắn đó. Việc này giúp bạn xử lý và lưu trữ thông tin với tốc độ và hiệu quả cao hơn bởi ứng dụng của bạn sẽ không phải xem xét qua toàn bộ tin nhắn trước khi có thể hiểu được cách xử lý nó.

Các thuộc tính tin nhắn Amazon SQS có hình thức là các nhóm tên-loại-giá trị. Các loại dữ liệu được hỗ trợ bao gồm chuỗi, nhị phân và số (bao gồm số nguyên, dấu phẩy động và double). Để biết thêm thông tin, tham khảo Sử dụng các Thuộc tính tin nhắn Amazon SQS trong Hướng dẫn nhà phát triển Amazon SQS.

Câu hỏi: Làm thế nào để tôi xác định giá trị thời gian trong hàng đợi?

Để xác định giá trị thời gian trong hàng đợi, bạn có thể yêu cầu thuộc tính SentTimestamp khi nhận được một tin nhắn. Loại trừ giá trị đó khỏi các kết quả thời gian hiện tại trong giá trị thời gian trong hàng đợi.

Câu hỏi: Độ trễ thường thấy đối với Amazon SQS là gì?

Độ trễ thường thấy đối với các yêu cầu API SendMessage, ReceiveMessage và DeleteMessage thường nằm ở khoảng vài chục đến hơn một trăm mili giây.

Câu hỏi: Đối với các truy cập ẩn danh, giá trị của thuộc tính SenderId cho một tin nhắn là gì?

Khi ID tài khoản AWS không khả dụng (ví dụ: khi một người dùng ẩn danh gửi một tin nhắn), Amazon SQS sẽ cung cấp địa chỉ IP.

Câu hỏi: Kiểm soát vòng dài của Amazon SQS là gì?

Kiểm soát vòng dài của Amazon SQS là một phương án để thu hồi các tin nhắn từ các hàng đợi Amazon SQS của bạn. Mặc dù phương án kiểm soát vòng ngắn thông thường sẽ trả về ngay lập tức, kể cả nếu hàng đợi tin nhắn đang kiểm soát là rỗng, kiểm soát vòng dài sẽ không trả về một phản hồi cho đến khi một tin nhắn được chuyển đến hàng đợi tin nhắn, hoặc kiểm soát vòng dài hết thời gian khả dụng.

Kiểm soát vòng dài là một phương pháp không tốn kém để bạn thu hồi các tin nhắn từ hàng đợi Amazon SQS của mình ngay khi các tin nhắn trở nên khả dụng. Việc sử dụng kiểm soát vòng dài có thể giúp giảm chi phí sử dụng SQS, bởi vì bạn có thể giảm số lượng các phiên rỗng thu về. Để biết thêm thông tin, tham khảo Kiểm soát vòng dài Amazon SQS trong Hướng dẫn nhà phát triển Amazon SQS.

Câu hỏi: Việc sử dụng kiểm soát vòng dài Amazon SQS có tính phí bổ sung không?

Không. Các lượt gọi ReceiveMessage trong kiểm soát vòng dài được tính phí hoàn toàn tương tự với các lượt gọi kiểm soát vòng ngắn ReceiveMessage.

Câu hỏi: Khi nào thì tôi nên dùng kiểm soát vòng dài của Amazon SQS và khi nào thì tôi nên sử dụng kiểm soát vòng ngắn của Amazon SQS?

Trong gần như mọi trường hợp, kiểm soát vòng dài của Amazon SQS là phương án phù hợp hơn kiểm soát vòng ngắn. Các yêu cầu kiểm soát vòng dài cho phép các người tiêu dùng hàng đợi của bạn nhận các tin nhắn ngay khi tin nhắn đến hàng đợi trong khi giảm số lượng các phiên ReceiveMessageResponse rỗng trả về.

Kiểm soát vòng dài Amazon SQS cho phép hiệu năng cao hơn với chi phí thấp hơn trong phần lớn các trường hợp sử dụng. Tuy nhiên, nếu ứng dụng của bạn yêu cầu một phản hồi ngay lập tức từ mỗi lượt gọi ReceiveMessage, bạn có thể sẽ không tận dụng được kiểm soát vòng dài nếu không có một số sự điều chỉnh trong ứng dụng của mình.

Ví dụ: nếu ứng dụng của bạn sử dụng một luồng đơn để kiểm soát vòng nhiều hàng đợi, việc chuyển đổi từ kiểm soát vòng ngắn sang kiểm soát vòng dài có thể sẽ không khả thi, bởi luồng đơn sẽ phải chờ cho đến thời gian ngắt kiểm soát vòng dài trên bất kỳ hàng đợi rỗng nào, làm trì hoãn quá trình xử lý của bất kỳ hàng đợi nào mà có thể chứa các tin nhắn.

Trong một ứng dụng như vậy, có một phương án hợp lý là sử dụng một luồng đơn để xử lý duy nhất một hàng đợi, cho phép ứng dụng tận dụng các lợi ích mà kiểm soát vòng dài Amazon SQS mang lại.

Câu hỏi: Tôi nên dùng giá trị nào cho thời gian ngắt kiểm soát vòng dài của mình?

Nhìn chung, bạn nên sử dụng tối đa là 20 giây cho thời gian ngắt kiểm soát vòng dài. Bởi nếu giá trị thời gian ngắt kiểm soát vòng dài càng cao thì số lượng các phiên bản ReceiveMessageResponse rỗng được trả về sẽ càng giảm, nên hãy cố gắng đặt thời gian ngắt kiểm soát vòng dài càng cao càng tốt.

Nếu thời gian tối đa 20 giây không phù hợp với ứng dụng của bạn (xem ví dụ trong câu hỏi trước), hãy đặt một thời gian ngắt kiểm soát vòng dài ngắn hơn, thậm chí đến 1 giây.

Tất cả các AWS SDK đều mặc định có thể hoạt động được với các kiểm soát vòng dài 20 giây. Nếu bạn không sử dụng một AWS SDK nào để truy cập vào Amazon SQS, hoặc nếu bạn cố tình cấu hình AWS SDK của mình để có thời gian ngắt ngắn hơn, bạn có thể sẽ cần phải điều chỉnh ứng dụng khách Amazon SQS của mình để cho phép các yêu cầu dài hơn hoặc để sử dụng một thời gian ngắt kiểm soát vòng ngắn hơn.

Câu hỏi: AmazonSQSBufferedAsyncClient cho Java là gì?

AmazonSQSBufferedAsyncClient cho Java giúp triển khai một giao diện AmazonSQSAsyncClient và bổ sung một số chức năng quan trọng:

  • Xếp loạt tự động nhiều yêu cầu SendMessage, DeleteMessage, hoặc ChangeMessageVisibility mà không yêu cầu bất kỳ thay đổi nào từ phía ứng dụng
  • Tìm nạp trước các tin nhắn vào một đệm cục bộ cho phép ứng dụng của bạn có thể xử lý ngay lập tức các tin nhắn từ Amazon SQS mà không phải đợi trong khi các tin nhắn được thu hồi

Khi làm việc cùng nhau, chức năng xếp loạt tự động và tìm nạp trước sẽ tăng thông lượng và giảm độ trễ của ứng dụng của bạn trong khi làm giảm các chi phí bằng cách đưa ra ít yêu cầu Amazon SQS hơn. Để biết thêm thông tin, tham khảo Xếp loạt yêu cầu và bộ đệm máy khách trong Hướng dẫn nhà phát triển Amazon SQS.

Câu hỏi: Tôi có thể tải về AmazonSQSBufferedAsyncClient cho Java ở đâu?

Bạn có thể tải về AmazonSQSBufferedAsyncClient thông qua AWS SDK cho Java.

Câu hỏi: Tôi có phải viết lại ứng dụng của mình để sử dụng AmazonSQSBufferedAsyncClient cho Java hay không?

Không. AmazonSQSBufferedAsyncClient cho Java đã được áp dụng dưới dạng thay thế tạm thời cho AmazonSQSAsyncClient hiện tại.

Nếu bạn cập nhật ứng dụng của mình để sử dụng AWS SDK và thay đổi máy khách để sử dụng AmazonSQSBufferedAsyncClient cho Java thay vì AmazonSQSAsyncClient, ứng dụng của bạn sẽ nhận được các lợi ích bổ sung của chức năng xếp loạt tự động và tìm nạp trước.

Câu hỏi: Làm thế nào để tôi đăng ký cho các hàng đợi tin nhắn Amazon SQS được nhận thông báo từ các chủ đề Amazon SNS?

  1. Trong bảng điều khiển Amazon SQS, chọn một hàng đợi tiêu chuẩn Amazon SQS.
  2. Bên dưới Hành động hàng đợi, chọn Đăng ký hàng đợi vào Chủ đề SNS từ danh sách thả xuống.
  3. Trong hộp thoại, chọn chủ đề từ danh sách thả xuống Chọn một chủ đề, sau đó nhấp vào Đăng ký.

Để biết thêm thông tin, tham khảo Đăng ký hàng đợi vào một Chủ đề Amazon SNS trong Hướng dẫn nhà phát triển Amazon SQS.

Câu hỏi: Tôi có thể xóa toàn bộ tin nhắn trong một hàng đợi tin nhắn mà không phải xóa chính hàng đợi tin nhắn đó không?

Có. Bạn có thể xóa toàn bộ tin nhắn trong một hàng đợi tin nhắn Amazon SQS bằng cách sử dụng hành động PurgeQueue.

Khi bạn tẩy sạch một hàng đợi tin nhắn, tất cả các tin nhắn được gửi tới hàng đợi trước đó sẽ bị xóa. Bởi vì hàng đợi tin nhắn của bạn và các thuộc tính của nó vẫn còn đó, bạn sẽ không cần phải cấu hình lại hàng đợi; bạn có thể tiếp tục sử dụng hàng đợi này.

Để yêu cầu xóa một số tin nhắn cụ thể, hãy sử dụng các hành động DeleteMessage hoặc DeleteMessageBatch.

Để biết thêm thông tin, tham khảo Hướng dẫn sau: Xóa sạch tin nhắn khỏi một hàng đợi Amazon SQS.

Hàng đợi FIFO

Câu hỏi: Những khu vực nào đang có hàng đợi FIFO?

Hàng đợi FIFO hiện có sẵn ở những khu vực sau:

  • Miền Tây Hoa Kỳ (Oregon, Bắc California)
  • Miền Đông Hoa Kỳ (Ohio, Bắc Virginia)
  • GovCloud (Miền Đông Hoa Kỳ)
  • GovCloud (Miền Tây Hoa Kỳ)
  • Châu Âu (Ai-len, Frankfurt, London, Paris, Stockholm)
  • Châu Á Thái Bình Dương (Sydney, Tokyo, Mumbai, Seoul, Singapore)
  • Canada (Miền Trung)
  • Nam Mỹ (Sao Paulo)
  • Trung Quốc (Ninh Hạ), do NWCD vận hành
  • Trung Quốc (Bắc Kinh), do SINNET vận hành
  • Châu Á Thái Bình Dương (Hong Kong) 

Câu hỏi: Tôi sẽ nhận được bao nhiêu bản sao tin nhắn?

Hàng đợi FIFO được thiết kế để không bao giờ đưa ra tin nhắn lặp. Tuy nhiên, ứng dụng tạo tin nhắn của bạn có thể tạo tin nhắn lặp trong những trường hợp sau: chẳng hạn, nếu ứng dụng gửi tin nhắn, không nhận được phản hồi và thực hiện gửi lại chính những tin nhắn đó. Amazon SQS cung cấp chức năng chống lặp để ngăn ứng dụng tạo tin nhắn của bạn gửi những bản lặp. Tất cả những bản lặp tạo ra bởi ứng dụng tạo tin nhắn sẽ bị xóa trong mỗi khoảng chống lặp là 5 phút.

Đối với những hàng đợi tiêu chuẩn, bạn có thể thỉnh thoảng vẫn nhận được một bản lặp cho một tin nhắn (chuyển ít nhất một lần). Nếu bạn sử dụng hàng đợi tiêu chuẩn, bạn phải thiết kế để các ứng dụng không thay đổi giá trị (nghĩa là, những ứng dụng này không bị thay đổi tiêu cực khi xử lý cùng một tin nhắn nhiều hơn một lần).

Để biết thêm thông tin, tham khảo Xử lý đúng một lần trong Hướng dẫn nhà phát triển Amazon SQS.

Câu hỏi: Những hàng đợi Amazon SQS tôi sử dụng trước đó có chuyển sang hàng đợi FIFO không?

Không. Hàng đợi Amazon SQS tiêu chuẩn (tên mới cho những hàng đợi đang tồn tại) sẽ không đổi và bạn vẫn có thể tạo những hàng đợi tiêu chuẩn. Những hàng đợi này sẽ tiếp tục cung cấp khả năng mở rộng và lưu lượng cao nhất; tuy nhiên, bạn sẽ không được đảm bảo về thứ tự và các bản lặp sẽ xuất hiện.

Những hàng đợi tiêu chuẩn phù hợp với nhiều tình huống, chẳng hạn như phân phối công việc với nhiều người dùng không đổi.

Câu hỏi: Tôi có thể chuyển đổi những hàng đợi tiêu chuẩn đang tồn tại sang hàng đợi FIFO không?

Không. Bạn phải chọn loại hàng đợi khi khởi tạo. Tuy nhiên, bạn có thể duy chuyển sang hàng đợi FIFO. Để biết thêm thông tin, tham khảo Di chuyển từ Hàng đợi tiêu chuẩn sang Hàng đợi FIFO trong Hướng dẫn nhà phát triển Amazon SQS.

Câu hỏi: Hàng đợi FIFO của Amazon SQS có tương thích ngược không?

Để tận dụng chức năng hàng đợi FIFO, bạn phai sử dụng AWS SDK mới nhất.

Hàng đợi FIFO sử dụng những thao tác API tương tự hàng đợi tiêu chuẩn và có cùng cơ chế nhận, xóa tin nhắn và thay đổi thời gian hiển thị tạm thời. Tuy nhiên, khi gửi tin nhắn, bạn phải nêu rõ ID nhóm tin nhắn. Để biết thêm chi tiết, tham khảo Logic hàng đợi FIFO trong Hướng dẫn nhà phát triển Amazon SQS.

Câu hỏi: Hàng đợi FIFO của Amazon SQS tương thích với AWS hay những dịch vụ ngoài nào?

Một vài AWS và dịch vụ ngoài gửi thông báo tới Amazon SQS có thể không tương thích với hàng đợi FIFO dù cho phép bạn đặt hàng đợi FIFO làm mục tiêu.

Những chức năng sau của Dịch vụ AWS hiện đang không tương thích với hàng đợi FIFO:

Để biết thêm thông tin về khả năng tương thích với những dịch vụ khác của hàng đợi FIFO, tham khảo tài liệu về dịch vụ của bạn.

Câu hỏi: Hàng đợi Amazon SQS có tương thích với Amazon SQS Buffered Asynchronous Client, Amazon SQS Extended Client Library cho Java hay Amazon SQS Java Message Service (JMS) Client không?

Hàng đợi FIFO hiện không tương thích với Amazon SQS Buffered Asynchronous Client.

Hàng đợi FIFO tương thích với Amazon SQS Extended Client Library cho Java và Amazon SQS Java Message Service (JMS) Client.

Câu hỏi: Hàng đợi FIFO của Amazon SQS hỗ trợ những chỉ số AWS CloudWatch nào?

Hàng đợi FIFO hỗ trợ tất cả những chỉ số mà hàng đợi tiêu chuẩn hỗ trợ. Với hàng đợi FIFO, tất cả những chỉ số tương đối sẽ cho ra những số đếm chính xác. Chẳng hạn, những thông số sau của AWS CloudWatch sẽ được hỗ trợ:

  • ApproximateNumberOfMessagesDelayed - Số lượng tin nhắn trong hàng đợi bị hoãn và không thể đọc ngay lập tức.
  • ApproximateNumberOfMessagesDelayed - Số lượng tin nhắn có thể thu lại được từ hàng đợi.
  • ApproximateNumberOfMessagesNotVisible - Số lượng tin nhắn đang chuyển (đã được gửi cho máy khách nhưng chưa bị xóa hoặc chưa đến điểm cuối của cửa sổ hiển thị).

Câu hỏi: Nhóm tin nhắn là gì?

Các tin nhắn được nhóm thành các “bó” khác biệt và theo thứ tự trong mỗi hàng đợi FIFO. Cho mỗi ID nhóm tin nhắn, tất cả các tin nhắn được gửi và nhận theo thứ tự chặt chẽ. Tuy nhiên, các tin nhắn với những giá trị ID nhóm tin nhắn khác nhau có thể được gửi và nhận không theo thứ tự. Bạn phải gắn ID nhóm tin nhắn vào tin nhắn. Nếu bạn không cung cấp ID nhóm tin nhắn thì tác vụ sẽ thất bại.

Nếu nhiều lưu trữ (hoặc _ của cùng một lưu trữ) gửi tin nhắn có cùng ID nhóm tin nhắm được gửi tới hàng đợi FIFO, Amazon SQS sẽ gửi những tin nhắn này theo thứ tự thời gian những tin nhắn này đến nơi để xử lý. Để đảm bảo Amazon SQS bảo quản thứ tự những tin nhắn này được gửi và nhận, đảm bảo rằng những người gửi gửi những tin nhắn này với những ID nhóm tin nhắn riêng biệt.

Để biết thêm chi tiết, tham khảo Logic hàng đợi FIFO trong Hướng dẫn nhà phát triển Amazon SQS.

Câu hỏi: Hàng đợi FIFO của Amazon SQS có hỗ trợ nhiều ứng dụng tạo tin nhắn không?

Có. Một hoặc nhiều ứng dụng có thể gửi tin nhắn vào hàng đợi FIFO. Những tin nhắn này được lưu trữ theo thứ tự khi Amazon SQS nhận thành công.

Nếu nhiều ứng dụng gửi tin nhắn song song mà không đợi phản hồi thành công từ những thao tác SendMessage hoặc SendMessageBatch, thứ tự mỗi ứng dụng này sẽ không được bảo quản. Phản hồi của những thao tác SendMessage hoặc SendMessageBatch bao gồm thứ tự cuối cùng mà hàng đợi FIFO sử dụng để đưa tin nhắn vào hàng đợi để những mã ứng dụng song song từ nhiều ứng dụng có thể xác định thứ tự cuối cùng của các tin nhắn trong hàng đợi.

Câu hỏi: Hàng đợi FIFO của Amazon SQS có hỗ trợ nhiều người sử dụng không?

Theo thiết kế, hàng đợi FIFO của Amazon SQS không hỗ trợ tin nhắn từ cùng một nhóm tin nhắn tới hơn một người dùng trong cùng một lúc. Tuy nhiên, nếu hàng đợi FIFO của bạn có nhiều nhóm tin nhắn, bạn có thể tận dụng những người sử dụng song song cho phép Amazon SQS phục vụ những tin nhắn từ nhiều nhóm tin nhắn đến những người sử dụng khác nhau.

Câu hỏi: Tôi có thể sử dụng các hàng đợi thư chết với hàng đợi FIFO không?

Có. Tuy nhiên, bạn phải sử dụng hàng đợi thư chết FIFO với hàng đợi FIFO. (Tương tự, bạn có thể sử dụng hàng đợi hàng thư chết với hàng đợi tiêu chuẩn không.)

Câu hỏi: Giới hạn thông lượng cho một hàng đợi FIFO của Amazon SQS là bao nhiêu?

Theo mặc định, hàng đợi FIFO hỗ trợ hơn 3.000 tin nhắn mỗi giây theo phương thức gói, hoặc hơn 300 tin nhắn mỗi giây (300 thao tác vận hàng gửi, nhận hoặc xóa mỗi giây) khi không sử dụng phương thức gói. Để yêu cầu tăng giới hạn, gửi yêu cầu hỗ trợ.

Câu hỏi: Có những giới hạn cụ thể nào cho các thuộc tính của hàng đợi FIFO?

Tên của hàng đợi FIFO phải kết thúc bằng hậu tố .fifo. Hậu tố sẽ được tính vào giới hạn 80 ký tự của tên hàng đợi. Để xác định hàng đợi có phải FIFO hay không, bạn có thể kiểm tra xem tên hàng đợi có kết thúc với hậu tố đó không.

Bảo mật và độ tin cậy

Câu hỏi: Lưu trữ dữ liệu trong Amazon SQS có đáng tin cậy không?

Amazon SQS lưu trữ tất cả những hàng đợi và tin nhắn vào một khu vực AWS khả dụng cao với nhiều Vùng Khả dụng (Availability Zones - AZs) thừa để không sự cố nào về máy tính, mạng và AZ có thể dẫn đến việc không thể truy cập tin nhắn. Để biết thêm thông tin, tham khảo Khu vực và Vùng sẵn sàng trong Hướng dẫn sử dụng Amazon Relational Database Service.

Câu hỏi: Tôi có thể bảo mật tin nhắn trong hàng đợi tin nhắn của tôi không?

Cơ chế xác thực cũng đảm bảo rằng các tin nhắn được lưu trữ trên hàng đợi tin nhắn Amazon SQS sẽ được bảo mật an toàn khỏi những truy cập trái phép. Bạn có thể kiểm soát ai là người gửi tin nhắn vào hàng đợi và người có thể nhận được tin nhắn từ hàng đợi tin nhắn. Để tăng độ bảo mật, bạn có thể xây dựng ứng dụng để mã hóa tin nhắn trước khi đưa chúng vào hàng đợi.

Amazon SQS có hệ thống cho phép dựa trên nguồn sử dụng những chính sách được viết ở cùng một ngôn ngữ với những chính sách trong Quản lý Định danh và Truy cập của AWS (Identity and Access Management -IAM): ví dụ bạn có thể sử dụng các biến như trong chính sách của IAM. Để có thêm thông tin, tham khảo Minh họa chính sách của Amazon SQS trong Hướng dẫn nhà phát triển Amazon SQS.

Amazon SQS hỗ trợ các giao thức HTTP trên SSL (HTTPS) và Bảo mật lớp vận chuyển (Transport Layer Security - TLS). Hầu hết các khách hàng có thể đàm phán tự động để sử dụng những phiên bản mới hơn của TLS mà không cần thay đổi mã hoặc cấu hình. Amazon SQS hỗ trợ các phiên bản 1.0, 1.1 và 1.2 của giao thức Bảo mật lớp vận chuyển (Transport Layer Security - TLS) ở tất cả các khu vực.

Câu hỏi: Tại sao lại có những sự vận hành ReceiveMessage và DeleteMessage khác nhau?

Khi Amazon SQS gửi lại tin nhắn cho bạn, tin nhắn sẽ nằm trong hàng đợi tin nhắn dù bạn có nhận được tin nhắn thật sự hay không. Bạn có trách nhiệm cho việc xóa tin nhắn và những xác nhận yêu cầu xóa xác nhận rằng bạn đã xử lý xong tin nhắn.

Nếu bạn không xóa tin nhắn, Amazon SQS sẽ gửi lại chúng khi nhận được yêu cầu nhận khác. Để biết thêm thông tin, tham khảo Thời gian ngắt hiển thị tạm thời trong Hướng dẫn nhà phát triển Amazon SQS.

Câu hỏi: Tin nhắn bị xóa có thể được nhận lại hay không?

Không. Hàng đợi FIFO được thiết kế để không bao giờ đưa ra tin nhắn lặp.

Đối với những hàng đợi tiêu chuẩn, trong những trường hợp hy hữu, bạn có thể nhận được những tin nhắn vừa được xóa lần thứ hai. 

Câu hỏi: Chuyện gì xảy ra nếu tôi đưa ra yêu cầu DeleteMessage đối với tin nhắn vừa được xóa?

Khi bạn đưa ra yêu cầu DeleteMessage đối với tin nhắn vừa được xóa, Amazon SQS sẽ đưa ra thông báo phản hồi thành công.

Mã hóa phía máy chủ (Server-Side encryption - SSE)

Câu hỏi: Lợi ích của mã hóa phía máy chủ cho Amazon SQS là gì?

Mã hóa phía máy chủ (SSE) cho phép bạn truyền những dữ liệu nhạy cảm vào hàng đợi được mã hóa. SSE bảo vệ nội dung tin nhắn trong hàng đợi Amazon SQS sử dụng những chìa khóa được quản trị trong AWS Key Management Service (AWS KMS). SSE mã hóa tin nhắn ngay khi Amazon SQS nhận được chúng. Các tin nhắn được lưu trữ ở dạng được mã hóa và Amazon SQS sẽ giải mã những tin nhắn này chỉ khi chúng được gửi đến người dùng được cho phép.

Để biết thêm thông tin, xem Bảo vệ dữ liệu sử dụng Mã hóa phía máy chủ (SSE) và AWS KMS trong Hướng dẫn nhà phát triển Amazon SQS

Câu hỏi: Tôi có thể sử dụng SNS, Cloud Watch Events và S3 Events với những hàng đợi được mã hóa không?

Có. Để làm được việc này bạn cần cho phép sự tương thích giữa các dịch vụ AWS (vd. Amazon CloudWatch Events, Amazon S3 và Amazon SNS) và các Hàng đợi với SSE. Để có thêm hướng dẫn chi tiết tham khảo phần Tương thích trong Hướng dẫn nhà phát triển SQS.  

Câu hỏi: Khu vực nào đang có hàng đợi có SSE?

Mã hóa phía máy chủ (SSE) cho Amazon SQS có ở những khu vực sau: Châu Á Thái Bình Dương (Mumbai, Osaka, Seoul, Singapore, Sydney và Tokyo), Canada (Miền Trung), Châu Âu (Frankfurt, Ai-len, London và Paris), Nam Mỹ (Sao Paulo), Miền Tây Hoa Kỳ (Bắc California, Oregon), Miền Đông Hoa Kỳ (Bắc Virginia, Ohio) và GovCloud (US).

Câu hỏi: Tôi có thể bật SSE cho hàng đợi Amazon SQS mới và hiện tại như thế nào?

Để bật SSE cho hàng đợi mới và hiện tại sử dụng API của Amazon SQS, ghi rõ ID của khóa chính khách hàng (CMK): bí danh, ARN của bí danh, ID khóa, hoặc ARN khóa của CMK được quản lý bởi AWS hoặc CMK tùy chọn bằng cách đặt thuộc tính KmsMasterKeyId của thao tác CreateQueue hoặc SetQueueAttributes.

Để có thêm hướng dẫn chi tiết, xem Tạo Hàng đợi của Amazon SQS với Mã hóa phía máy chủCấu hình Mã hóa phía máy chủ (SSE) cho những Hàng đợi Amazon SQS hiện có trong Hướng dẫn nhà phát triển Amazon SQS.

Câu hỏi: Những loại hàng đợi Amazon SQS nào có thể sử dụng SSE?

Cả hàng đợi tiêu chuẩn và hàng đợi FIFO đều hỗ trợ SSE.

Câu hỏi: Tôi cần quyền cho phép gì để sử dụng SSE với Amazon SQS?

Trước khi bạn có thể sử dụng SSE, bạn phải cấu hình những chính sách khóa KMS của AWS để cho phép mã hóa hàng đợi và mã hóa và giải mã tin nhắn.

Để bật SSE cho một hàng đợi, bạn có thể sử dụng khóa khách hàng (CMK) quản lý bởi Amazon SQS hoặc CMK tùy chỉnh. Để có thêm thông tin, xem Khóa khách hàng trong Hướng dẫn nhà phát triển KMS của AWS.

Để gửi tin nhắn tới hàng đợi được mã hóa, ứng dụng phải có sự cho phép kms:GenerateDataKey và kms:Decrypt permissions cho CMK.

Để nhận tin nhắn từ hàng đợi được mã hóa, người dùng phải có sự cho phép kms:Decrypt cho bất kỳ CMK nào được sử dụng để mã hóa tin nhắn trong hàng đợi cụ thể. Nếu hàng đợi hoạt động như hàng đợi thư chết, người dùng phải có sự cho phép kms:Decrypt cho bất kỳ CMK nào được sử dụng để mã hóa tin nhắn trong hàng đợi nguồn.

Để biết thêm thông tin, tham khảo Tôi cần quyền nào để sử dụng SSE trong Hướng dẫn nhà phát triển Amazon SQS.

Câu hỏi: Có tính phí cho việc sử dụng SSE với Amazon SQS không?

Amazon SQS không thu thêm phí. Tuy nhiên, có tính phí đối với các truy vấn từ Amazon SQS tới AWS KMS. Để biết thêm thông tin, hãy xem Giá cả AWS Key Management Service.

Mức phí sử dụng AWS KMS phụ thuộc vào khoảng thời gian tái sử dụng khóa dữ liệu được cấu hình cho các hàng đợi của bạn. Để biết thêm thông tin, hãy xem Làm thế nào để tôi ước lượng chi phí sử dụng AWS KMS của tôi? trong Hướng dẫn nhà phát triển Amazon SQS.

Câu hỏi: SSE cho Amazon SQS mã hoá gì và mã hoá như thế nào?

SSE mã hoá nội dung tin nhắn trong một hàng đợi Amazon SQS.

SSE không mã hoá những thành phần sau:

  • Siêu dữ liệu hàng đợi (tên và thuộc tính hàng đợi)
  • Siêu dữ liệu tin nhắn (ID tin nhắn, nhãn thời gian và các thuộc tính)
  • Chỉ số theo hàng đợi

Amazon SQS tạo khoá dữ liệu dựa trên khoá chính khách hàng (CMK) được quản lý bởi cho Amazon hoặc một CMK tuỳ chỉnh để đem lại mã hoá phong bì và giải mã tin nhắn trong một khoảng thời gian có thể được cấu hình (từ 1 phút cho tới 24 giờ).

Để biết thêm thông tin, tham khảo SSE cho Amazon SQS mã hoá gì? trong Hướng dẫn nhà phát triển Amazon SQS.

Câu hỏi: SSE cho Amazon SQS sử dụng thuật toán gì để mã hoá tin nhắn?

SSE sử dụng thuật toán AES-GCM 256.

Câu hỏi: SSE có giới hạn số giao dịch mỗi giây (TPS) hay số hàng đợi có thể được tạo với Amazon SQS không?

SSE không hạn chế thông lượng (TPS) của Amazon SQS. Số hàng đợi SSE mà bạn có thể tạo sẽ bị giới hạn theo:

  • Khoảng thời gian tái sử dụng khoá dữ liệu (1 phút tới 24 giờ).
  • Giới hạn AWS KMS cho mỗi tài khoản (mặc định là 100 TPS).
  • Số người dùng IAM hoặc các tài khoản có thể truy cập tới các hàng đợi.
  • Có một danh sách công việc lớn (một danh sách công việc lớn hơn sẽ cần thêm nhiều truy vấn KMS).

Ví dụ: hãy giả định các giới hạn sau đây:

  • Bạn đặt khoảng thời gian tái sử dụng khoá dữ liệu thành 5 phút (300 giây).
  • Tài khoản KMS của bạn có một giới hạn mặc định AWS KMS TPS là 100 TPS.
  • Bạn dùng một hàng đợi Amazon SQS không có danh sách công việc và một người dùng IAM để
  • Các tác vụ SendMessage hoặc ReceiveMessage cho toàn bộ các hàng đợi.

Trong trường hợp này, bạn có thể tính số hàng đợi với SSE SQS tối đa giả định như sau:

300 giây x 100 TPS / 1 người dùng IAM = 30.000 hàng đợi

Câu hỏi: Tôi có thể ước tính chi phí sử dụng AWS KMS của tôi như thế nào?

Để ước lượng chi phí và hiểu rõ hoá đơn AWS của bạn, bạn có thể muốn biết tần suất Amazon SQS sử dụng CMK của bạn.

Lưu ý: Mặc dù công thức sau sẽ giúp bạn hình dung rõ về chi phí dự kiến, chi phí thực có thể sẽ cao hơn vì tính chất phân phối của Amazon SQS.

Để tính số yêu cầu API mỗi hàng đợi (R), hãy sử dụng công thức sau:

R = B / D * (2 * P + C)

B là khoảng thời gian tính phí (theo giây)

D khoảng thời gian tái sử dụng khoá dữ liệu (theo giây)

P là số thực thể chính được tạo mà gửi đến hàng đợi Amazon SQS.

C là số thực thể chính đã dùng mà nhận qua hàng đợi Amazon SQS.

Quan trọng: Nhìn chung, việc tạo các thực thể chính sẽ gấp đôi chi phí so với sử dụng các thực thể chính. Để biết thêm thông tin, tham khảo Khoảng thời gian tái sử dụng khoá dữ liệu hoạt động như thế nào? trong Hướng dẫn nhà phát triển Amazon SQS.

Nếu bên tạo và bên sử dụng có các tài khoản người dùng khác nhau, chi phí sẽ tăng lên.

Để biết thêm thông tin, hãy xem Làm thế nào để tôi ước lượng chi phí sử dụng AWS KMS của tôi? trong Hướng dẫn nhà phát triển Amazon SQS

Tuân thủ

Câu hỏi: Amazon SQS PCI DSS có được cấp chứng nhận không?

Có. Amazon SQS được cấp chứng nhận PCI DSS Cấp 1. Để biết thêm thông tin, tham khảo mục Tuân thủ PCI.

Câu hỏi: Amazon SQS có đủ điều kiện HIPAA không?

Có, AWS đã mở rộng chương trình tuân thủ HIPAA để thêm Amazon SQS vào trong các Dịch vụ đủ điều kiện với HIPAA. Nếu bạn có một Thoả thuận hợp tác kinh doanh (BAA) với AWS, bạn có thể sử dụng Amazon SQS để xây dựng các ứng dụng đáp ứng với HIPAA của bạn, lưu trữ các tin nhắn đang được gửi và truyền các tin nhắn – bao gồm các tin nhắn có chứa thông tin về sức khoẻ được bảo vệ (PHI).

Nếu bạn đã có một BAA với AWS có hiệu lực, bạn có thể bắt đầu sử dụng Amazon SQS ngay lập tức. Nếu bạn chưa có BAA hay còn có câu hỏi về việc sử dụng AWS cho các ứng dụng phù hợp với HIPAA, hãy liên hệ với chúng tôi để biết thêm thông tin.

Lưu ý: Nếu bạn không muốn truyền PHI thông qua Amazon SQS (hoặc có tin nhắn lớn hơn 256 KB), thay vào đó bạn có thể gửi tải trọng tin nhắn Amazon SQS qua Amazon S3 bằng Thư viện khách mở rộng Amazon SQS cho Java (Amazon S3 là một Dịch vụ đủ điều kiện HIPAA, trừ việc sử dụng Amazon S3 Transfer Acceleration). Để biết thêm thông tin, tham khảo Sử dụng Thư viện khách mở rộng Amazon SQS cho Java trong Hướng dẫn nhà phát triển Amazon SQS.

Giới hạn và hạn chế

Câu hỏi: Tôi có thể giữ các tin nhắn của mình trong hàng đợi tin nhắn Amazon SQS trong bao lâu?

Việc lưu giữ tin nhắn lâu hơn sẽ đem lại sự linh động cao, cho phép kéo dài khoảng thời gian giữa việc tạo và sử dụng tin nhắn.

Bạn có thể cấu hình khoảng thời gian lưu giữ tin nhắn Amazon SQS từ 1 phút cho tới 14 ngày. Giá trị mặc định là 4 ngày. Khi đã đạt giới hạn lưu giữ tin nhắn, các tin nhắn của bạn sẽ được tự động xoá.

Câu hỏi: Tôi có thể cấu hình Amazon SQS như thế nào để lưu trữ tin nhắn lâu hơn?

Để cấu hình khoảng thời gian lưu trữ tin nhắn, đặt thuộc tính MessageRetentionPeriod bằng bảng điều khiển hoặc bằng phương thức Distributiveness. Sử dụng thuộc tính này để chỉ định số giây tin nhắn này được lưu giữ trong Amazon SQS.

Bạn có thể dùng thuộc tính MessageRetentionPeriod để đặt khoảng thời gian lưu giữ tin nhắn từ 60 giây (1 phút) cho tới 1.209.600 giây (14 ngày). Để biết thêm thông tin về thao tác đối với thuộc tính tin nhắn này, tham khảo Tham chiếu API Amazon SQS.

Câu hỏi: Làm thế nào để tôi cấu hình kích cỡ tối đa của tin nhắn cho Amazon SQS?

Để cấu hình kích cỡ tin nhắn tối đa, hãy sử dụng bảng điều khiển hoặc phương thức SetQueueAttributes để đặt thuộc tính MaximumMessageSize. Thuộc tính này chỉ định giới hạn số byte mà một tin nhắn Amazon SQS có thể chứa. Đặt giới hạn này trong khoảng giá trị giữa 1.024 byte (1 KB) và 262.144 bye (256 KB). Để biết thêm thông tin, tham khảo Sử dụng các Thuộc tính tin nhắn Amazon SQS trong Hướng dẫn nhà phát triển Amazon SQS.

Để gửi tin nhắn lớn hơn 256 KB, hãy dùng Thư viện khách mở rộng Amazon cho Java. Thư viện này cho bạn gửi một tin nhắn Amazon SQS có chứa một tham chiếu cho một tải trọng tin nhắn trong Amazon S3 có dung lượng có thể lên đến 2 GB.

Câu hỏi: Loại dữ liệu nào tôi có thể cho vào tin nhắn?

Tin nhắn Amazon có thể chứa tới 256 KB dữ liệu văn bản, bao gồm XML, JSON và văn bản chưa định dạng. Các ký tự Unicode sau được chấp nhận:

#x9 | #xA | #xD | [#x20 to #xD7FF] | [#xE000 to #xFFFD] | [#x10000 to #x10FFFF]

Để biết thêm thông tin, hãy xem Chỉ dẫn kỹ thuật XML 1.0.

Câu hỏi: Hàng đợi tin nhắn Amazon SQS có thể có kích cỡ như thế nào?

Một hàng đợi tin nhắn Amazon SQS đơn có thể chứa số lượng tin nhắn không giới hạn. Tuy nhiên, số tin nhắn đang di chuyển cho một hàng đợi tiêu chuẩn sẽ bị giới hạn là 120.000 và 20.000 cho một hàng đợi FIFO. Các tin nhắn ở trạng thái đang di chuyển sau khi đã được nhận từ hàng đợi của một thành phần sử dụng, nhưng chưa bị xoá khỏi hàng đợi.

Câu hỏi: Tôi có thể tạo được bao nhiêu hàng đợi tin nhắn?

Bạn có thể tạo bao nhiêu hàng đợi tin nhắn tuỳ thích.

Câu hỏi: Có giới hạn kích cỡ tên của hàng đợi tin nhắn Amazon SQS không?

Tên hàng đợi giới hạn ở 80 ký tự.

Câu hỏi: Có giới hạn gì cho tên của hàng đợi tin nhắn Amazon SQS không?

Bạn có thể sử dụng các chữ và số, dấu gạch ngang (-) và dấu gạch dưới (_).

Câu hỏi: Tôi có thể tái sử dụng tên của một hàng đợi tin nhắn không?

Tên của một hàng đợi tin nhắn phải độc nhất trong một tài khoản AWS và trong một khu vực. Bạn có thể tái sử dụng tên của một hàng đợi tin nhắn sau khi bạn xóa hàng đợi tin nhắn ấy.

Chia sẻ hàng đợi

Câu hỏi: Làm thế nào để tôi chia sẻ một hàng đợi tin nhắn?

Bạn có thể liên kết một lệnh chính sách truy nhập (và chỉ định các quyền được cấp) với hàng đợi tin nhắn được chia sẻ. Amazon SQS cung cấp các API để tạo và quản lý các lệnh chính sách truy nhập:

  • AddPermission
  • RemovePermission
  • SetQueueAttributes
  • GetQueueAttributes

Để biết thêm thông tin, hãy xem Tham chiếu API Amazon SQS.

Câu hỏi: Ai trả tiền cho việc truy nhập hàng đợi được chia sẻ?

Chủ của hàng đợi tin nhắn sẽ phải trả cho việc truy nhập hàng đợi tin nhắn được chia sẻ.

Câu hỏi: Làm thế nào để tôi xác định được một người dùng AWS khác mà tôi muốn chia sẻ một hàng đợi tin nhắn tới?

API Amazon SQS sử dụng một số tài khoản AWS để xác định người dùng AWS.

Câu hỏi: Tôi cần gì để cung cấp cho một người dùng AWS mà tôi muốn chia sẻ hàng đợi tin nhắn tới?

Để chia sẻ một hàng đợi tin nhắn tới một người dùng AWS, hãy cung cấp đường dẫn URL đầy đủ từ hàng đợi tin nhắn mà bạn muốn chia sẻ. Các tác vụ CreateQueue và ListQueues sẽ trả lại địa chỉ URL này trong phản hồi của các tác vụ ấy.

Câu hỏi: Amazon SQS có hỗ trợ truy nhập ẩn danh không?

Có. Bạn có thể cấu hình một chính sách truy nhập cho phép các người dùng ẩn danh truy cập vào một hàng đợi tin nhắn.

Câu hỏi: Khi nào thì tôi nên sử dụng API cấp quyền?

API cấp quyền đem lại một giao diện để chia sẻ truy nhập tới một hàng đợi tin nhắn cho các nhà phát triển. Tuy nhiên, API này không thể cho phép truy nhập có điều kiện hoặc các trường hợp sử dụng phức tạp hơn.

Câu hỏi: Khi nào thì tôi nên sử dụng tác vụ SetQueueAttributes với các đối tượng JSON?

Tác vụ SetQueueAttributes hỗ trợ đầy đủ ngôn ngữ trong chính sách truy nhập. Ví dụ: bạn có thể sử dụng ngôn ngữ trong chính sách để giới hạn truy nhập vào một hàng đợi tin nhắn theo địa chỉ IP và thời gian trong ngày. Để biết thêm thông tin, tham khảo Minh họa chính sách của Amazon SQS trong Hướng dẫn nhà phát triển Amazon SQS.

Khu vực và truy cập dịch vụ

Câu hỏi: Amazon SQS có tại các khu vực nào?

Để biết về sự khả dụng của khu vực dịch vụ, tham khảo Bảng khu vực cơ sở hạ tầng toàn cầu AWS.

Câu hỏi: Tôi có thể chia sẻ tin nhắn giữa các hàng đợi tại các khu vực khác nhau không?

Không. Mỗi hàng đợi tin nhắn Amazon SQS độc lập với nhau trong mỗi khu vực.

Câu hỏi: Có khác biệt về giá cả giữa các khu vực không?

Giá cả của Amazon SQS vẫn như nhau tại các khu vực, ngoại trừ tại Trung Quốc (Bắc Kinh). Để biết thêm thông tin, tham khảo Giá Amazon SQS.

Câu hỏi: Hệ thống giá cả giữa các vùng khác nhau là gì?

Bạn có thể chuyển dữ liệu giữa Amazon SQS và Amazon EC2 hoặc AWS Lambda miễn phí trong cùng một khu vực.

Khi bạn chuyển dữ liệu giữa Amazon SQS và Amazon EC2 hoặc AWS Lambda tại các khu vực khác nhau, bạn sẽ bị tính theo mức phí chuyển dữ liệu thông thường. Để biết thêm thông tin, tham khảo Giá Amazon SQS.

Tìm hiểu thêm về giá của Amazon SQS

Truy cập trang giá
Bạn đã sẵn sàng xây dựng chưa?
Bắt đầu với Amazon SQS
Bạn có thêm câu hỏi?
Hãy liên hệ chúng tôi