全部产品
Search
文档中心

:Bagaimana cara menentukan ID pesan?

更新时间:Jul 02, 2025

Untuk melacak dan mengidentifikasi pesan, Anda dapat menentukan ID unik untuk setiap pesan pada klien produser ApsaraMQ for RabbitMQ. Topik ini menjelaskan definisi ID pesan serta cara menentukannya.

Apa itu ID pesan?

ID pesan adalah atribut pesan opsional bertipe string pendek. Dalam sebagian besar skenario bisnis, ID berfungsi sebagai pengenal unik sebuah pesan. Anda dapat menggunakan ID pesan untuk melacak dan mengidentifikasi pesan dalam skenario seperti pelacakan pesanan dan pemrosesan tiket. Broker ApsaraMQ for RabbitMQ tidak menjamin idempotensi konsumsi pesan. Idempotensi konsumsi berarti bahwa jika sebuah pesan dikirim ke konsumen beberapa kali, hasil dari beberapa operasi konsumsi sama dengan hasil dari satu operasi konsumsi, tanpa dampak negatif pada aplikasi bisnis. Untuk memastikan idempotensi konsumsi pesan, Anda harus menentukan ID unik untuk setiap pesan dan mengonfigurasi parameter yang diperlukan untuk menerapkan konsumsi idempoten pada klien konsumen ApsaraMQ for RabbitMQ. Untuk informasi lebih lanjut, lihat Idempotensi Pesan.

Metode konfigurasi

Pada klien produser ApsaraMQ for RabbitMQ, konfigurasikan parameter message-id dari field Basic.Properties. Contoh kode:

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);