web-dev-qa-db-ja.com

メッセージの属性に対するAmazon SQSメッセージ本文の目的

すでにメッセージ属性を追加できる状態で、SQSでメッセージ本文を使用する目的は何ですか?

例を挙げましょう。新しいユーザーが登録されたときにメッセージをnew-userキューにプッシュします。メッセージにuserIdの属性があると想像しますが、body here。

17
Thịnh Phạm

メッセージ属性は、メッセージ自体ではなく、メッセージメタデータ(タイムスタンプまたはおそらくカテゴリなど)として使用されることになっています。

理想的には、メッセージペイロードはメッセージ本文で指定する必要があります

したがって、たとえば、JSONおよびXMLペイロードをサポートしている場合は、ペイロードタイプをメッセージ属性として配置し、メッセージをフェッチするときに、このペイロードタイプ属性に基づいて、JSONメッセージプロセッサまたはXMLメッセージプロセッサのどちらかを決定できます。これは、属性と本文の使用法を説明するための単なる表面的な例です

以下はAWS Docからの抜粋です

Amazon SQSは、メッセージ属性のサポートを提供します。メッセージ属性を使用すると、メッセージに関する構造化されたメタデータアイテム(タイムスタンプ、地理空間データ、署名、識別子など)を提供できます。メッセージ属性はオプションであり、メッセージ本文とは別に送信されます。この情報は、メッセージの受信者が最初にメッセージ本文を処理せずにメッセージを処理する方法を決定するために使用できます。各メッセージは最大10個の属性を持つことができます。メッセージ属性を指定するには、AWSマネジメントコンソール、AWSソフトウェア開発キット(SDK)、またはクエリAPIを使用できます。

22

rabbitMQKafkaなどの従来のキュープロバイダーにマップする。

以下のように理解できます。

message_body=message_payload
message_attributes=message_headers ( can be used to apply different routing and filtering message using their headers information)

実際、aws sqsで使用されている用語よりもpayloadおよびheadersという用語の方が好まれます。

メッセージ属性は、メッセージペイロードの属性に似ています。

4
Joey Trang