ApsaraMQ for RocketMQ mesajları sorgulamak için üç yöntem sunar: mesaj kimliğine göre, mesaj anahtarına göre ve konuya göre. Mesaj sorgulama özelliğini kullanarak bir mesajın başarıyla gönderildiğini doğrulayabilir, içeriğini kontrol edebilir ve mesaj izini görüntüleyebilirsiniz.
Sorgulama yöntemleri
Varsayılan olarak ApsaraMQ for RocketMQ mesajları üç gün boyunca saklar. Bu nedenle yalnızca son üç güne ait mesajları sorgulayabilirsiniz. Örneğin, geçerli saat 10 Haziran 2019 tarihinde 15:09:48 ise, bir konuda sorgulayabileceğiniz en eski mesaj 7 Haziran 2019 tarihinde 15:09:48'de gönderilmiş olandır.
Aşağıdaki tabloda üç sorgulama yöntemi açıklanmış ve karşılaştırılmıştır.
|
Sorgulama yöntemi |
Sorgulama koşulu |
Eşleşme türü |
Açıklama |
|
Mesaj kimliğine göre |
topic + message ID |
tam eşleşme |
Özelliklerini almak üzere konu ve mesaj kimliği temelinde belirli bir mesajı bulur. |
|
Mesaj anahtarına göre |
topic + message key |
bulanık eşleşme |
Belirtilen konu ve mesaj anahtarıyla eşleşen en son 64 mesajı bulur. Önemli
Üreticiler her mesaj için benzersiz bir anahtar atamalıdır. Aynı anahtara sahip 64'ten fazla mesaj varsa bazı mesajlar sorgu sonuçlarında döndürülmeyebilir. |
|
Konuya göre |
topic + time range |
aralık eşleşmesi |
Belirtilen zaman aralığında bir konudaki tüm mesajları alır. Bu yöntem büyük miktarda mesaj döndürebileceğinden belirli bir mesajı bulmak zorlaşabilir. |
Önerilen sorgulama süreci
Mesajları sorgularken aşağıdaki süreci izlemenizi öneririz.

Yordam
ApsaraMQ for RocketMQ konsolu oturumunu açın. Sol gezinme bölmesinde Instances seçeneğine tıklayın.
Üst gezinme çubuğunda China (Hangzhou) gibi bir bölge seçin.
Instances sayfasında hedef örneği bulun. Actions sütununda More seçeneğine tıklayın ve ardından açılan listeden Message Query öğesini seçin.
-
Message Query sayfasında bir sorgulama yöntemi seçin, gerekli bilgileri girin ve Search seçeneğine tıklayın.
-
Query by Message ID
Belirli bir mesaj için tam eşleşme sorgusu yapmak amacıyla konusunu ve mesaj kimliğini girin. Başarılı bir gönderimden sonra mesaj kimliğini günlük kaydı olarak tutmak sorun gidermeyi kolaylaştırır.
Aşağıdaki kod, Java SDK kullanılarak mesaj kimliğinin nasıl alınacağını gösterir.
SendResult sendResult = producer.send(msg); String msgId = sendResult.getMessageId();Diğer diller için bkz. SDK başvurusuna genel bakış.
-
Query by Message Key
ApsaraMQ for RocketMQ ayarladığınız mesaj anahtarı temelinde mesajlar için bir dizin oluşturur. Anahtarı kullanarak bir mesaj aradığınızda ApsaraMQ for RocketMQ eşleşen mesajları bulmak ve döndürmek için bu dizini kullanır.
ÖnemliBu sorgulama yöntemini kullanmak için mesajı gönderirken mesaj anahtarını ayarlamanız gerekir.
Mesaj anahtarına göre yapılan bir sorgu yalnızca en son 64 eşleşen mesajı döndürür. Benzersiz ve iş açısından ayırt edilebilir anahtarlar kullanın.
Aşağıdaki kod bir mesaj anahtarının nasıl ayarlanacağını gösterir.
Message msg = new Message("Topic","*","Hello MQ".getBytes()); /** * Set a unique business key for message retrieval. A globally unique key is recommended. * This allows you to query the message in the ApsaraMQ for RocketMQ console if you fail to receive it. * If you do not set a key, message sending and receiving are not affected, but key-based queries will not work. */ msg.setKey("TestKey"+System.currentTimeMillis()); -
Query by Topic
Mesaj kimliğini veya mesaj anahtarını bilmediğiniz durumlarda bu yöntemi kullanın. O dönemde gönderilen tüm mesajları almak için bir konu ve zaman aralığı belirtin.
ÖnemliMesajları konuya göre sorgularken:
Bu aralık eşleşmesi çok sayıda mesaj döndürebilir. Sonuçları sınırlamak için zaman aralığını mümkün olduğunca daraltın.
Sorgu büyük miktarda mesaj döndürebileceğinden sonuçlar sayfalandırılır.
-
Sorgu sonuçları
Sorgulanan mesajları konsoldaki Message Query sayfasında görüntüleyebilirsiniz. Sonuçlar arasında mesaj kimliği, etiket, anahtar, üretim zamanı ve depolama zamanı yer alır. Ayrıca mesaj izlerini sorgulayabilir, tüketim doğrulaması yapabilir veya mesajları indirebilirsiniz.
Tüketim doğrulaması
ApsaraMQ for RocketMQ bir tüketim doğrulama özelliği sunar. Bu özellik, tüketim mantığını test etmek ve sonuçları doğrulamak amacıyla belirli bir mesajı çevrimiçi bir istemciye göndermenize olanak tanır.
Tüketim doğrulaması yalnızca istemci mantığı için bir test aracıdır. Normal mesaj teslimatını etkilemez veya mesajın tüketim durumunu değiştirmez.
Tüketim doğrulama iletişim kutusunda bir group ID ve bir client ID seçin ve ardından OK seçeneğine tıklayın. Tüketim doğrulaması mesajın yeniden iletilmesine neden olabilir.
Başvurular
Sorgu sonuçlarından mesajın tüketim durumunu ve sonucunu kontrol etmek üzere mesaj izini görüntüleyebilirsiniz. Daha fazla bilgi için bkz. mesaj izlerini sorgulama.