Especifique um ID de mensagem exclusivo nos produtores do ApsaraMQ for RabbitMQ para rastrear e identificar mensagens.
O que é um ID de mensagem?
O ID de mensagem é uma propriedade opcional do tipo string curta que identifica exclusivamente uma mensagem. Esse recurso é útil para rastrear pedidos de vendas e chamados. Os servidores do ApsaraMQ for RabbitMQ não garantem idempotência; portanto, os consumidores podem receber a mesma mensagem várias vezes. Para evitar que o processamento duplicado afete seus negócios, atribua um ID de mensagem exclusivo e implemente a idempotência nos consumidores do ApsaraMQ for RabbitMQ. Para mais informações, consulte Implementando idempotência.
Defina um ID de mensagem
Defina o ID de mensagem nas propriedades básicas dos produtores do 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.BasicPublish(exchange: "", routingKey: "hello", basicProperties: null, body: body);