すべてのプロダクト
Search
ドキュメントセンター

:メッセージ ID の設定方法

最終更新日:Aug 28, 2026

メッセージを追跡および識別するために、ApsaraMQ for RabbitMQ のプロデューサー クライアントでメッセージ ID プロパティを設定して、各メッセージに一意の識別子を割り当てることができます。このトピックでは、メッセージ ID とは何か、およびその設定方法について説明します。

メッセージ ID

メッセージ ID はオプションのメッセージプロパティで、通常はビジネス目的で一意の値が設定される短い文字列です。これは、販売注文やチケットの追跡など、一意のメッセージを必要とするシナリオで役立ちます。ApsaraMQ for RabbitMQ は、メッセージに対してサーバー側のべき等性チェックを実行しません。メッセージのべき等性を確保するには、ApsaraMQ for RabbitMQ のコンシューマー クライアントでもこれを処理する必要があります。メッセージのべき等性とは、メッセージが複数回再試行された場合、重複したメッセージを消費した結果が、副作用を引き起こすことなく、一度消費した場合と同じになることを意味します。これには、各メッセージに一意のメッセージ ID を設定する必要があります。詳細については、「メッセージのべき等性」をご参照ください。

設定方法

ApsaraMQ for RabbitMQ プロデューサー クライアントでは、Basic.Propertiesmessage-id プロパティを設定できます。 サンプルコードは次のとおりです:

Java

AMQP.BasicProperties props = new AMQP.BasicProperties.Builder().messageId("messageid").build(); 
channel.basicPublish("${ExchangeName}", "RoutingKey", true, props, ("Message Body").getBytes(StandardCharsets.UTF_8));

Python

properties = pika.BasicProperties(app_id='example-publisher', content_type='application/json', message_id='messageid')

PHP

$msg = new AMQPMessage($msgBody, ['application_headers'=>$amqpTable,'content_type' => 'text/plain', 'delivery_mode' => 2,'message_id' => 'messageid',]);

Go

err = ch.Publish( "helloExchange", "hello", false, false, amqp.Publishing { ContentType: "text/plain", Body: []byte(body), MessageId: "messageId", })

Node.js

channel.BasicPublish(exchange: "", routingKey: "hello", basicProperties: null, body: body);