Spécifiez un ID de message unique sur les producteurs ApsaraMQ for RabbitMQ pour suivre et identifier les messages.
Qu'est-ce qu'un ID de message ?
Un ID de message est une propriété facultative de type chaîne courte qui identifie un message de manière unique. Cette propriété est utile pour le suivi des commandes et des tickets. Les serveurs ApsaraMQ for RabbitMQ ne garantissent pas l'idempotence : les consommateurs peuvent recevoir plusieurs fois le même message. Pour éviter que les traitements en double n'affectent votre activité, attribuez un ID de message unique et implémentez l'idempotence au niveau des consommateurs ApsaraMQ for RabbitMQ. Pour plus d'informations, consultez la rubrique Implémentation de l'idempotence.
Définir un ID de message
Définissez l'ID de message dans les propriétés de base sur les producteurs ApsaraMQ for RabbitMQ :
AMQP.BasicProperties props = new AMQP.BasicProperties.Builder().messageId("messageid").build ();channel. basicPublish("${ExchangeName}", "BindingKey", true, props, ("Message body").getBytes(StandardCharsets.UTF_8));
properties = pika.BasicProperties(app_id='example-publisher', content_type='application/json', 'message_id'='messageid')
$msg = new AMQPMessage($msgBody, ['application_headers'=>$amqpTable,'content_type' => 'text/plain', 'delivery_mode' => 2,'message_id' => 'messageid',]);
err = ch.Publish( "helloExchange", "hello", false, false, amqp.Publishing { ContentType: "text/plain", Body: []byte(body), MessageId: "messageId", })
channel.publish('${ExchangeName}', 'BindingKey', Buffer.from('Message body'), { messageId: 'messageid' });