Mesaj izi, ApsaraMQ for RocketMQ içinde bir mesajın gönderilme, depolanma ve tüketilme süreçlerini kapsayan tam yolunu kaydeder. Her aşamada zamanlama, durum ve istemci ayrıntıları yakalanır. Mesaj izleme özelliği tüm mesaj türlerinde etkin olur.
Mesaj izlerini şu amaçlarla kullanabilirsiniz:
Bir mesajın başarıyla gönderilip gönderilmediğini ve tüketilip tüketilmediğini doğrulayın.
Mesajın nerede takıldığını veya başarısız olduğunu tespit edin.
Tüketilen bir mesaj için belirli tüketici istemcisini ve zaman damgasını bulun.
Mesaj izlerinin çalışma biçimi
Tam bir mesaj izi üç aşamada veri toplar:
| Producer | Broker | Consumer |
|---|---|---|
| İstemci IP adresi | Sunucuya varış zamanı | İstemci IP adresi |
| Gönderim zaman damgası | Planlanan teslimat zamanı | Tüketiciye varış zamanı |
| Gönderim süresi (RT) | Gerçek teslimat zamanı | İşlem öncesi bekleme süresi |
| Gönderim durumu | Mesaj türü | İşlem başlangıç/bitiriş zamanı |
| AccessKey ID | İşlem taahhüt/geri alma zamanı | İşlem süresi |
| Teslimat sonucu | ||
| AccessKey ID |

Başlamadan önce
SDK sürüm gereksinimleri
Mesaj izleme için minimum bir SDK sürümü gerekir.
| Protokol | Dil | Minimum sürüm | Sürüm notları |
|---|---|---|---|
| TCP | Java | V1.2.7.Final | SDK for Java release notes |
| TCP | C/C++ | V1.1.2 | SDK for C and C++ release notes |
| TCP | .NET | V1.1.2 | SDK for .NET release notes |
| HTTP | Node.js | V1.0.2 | HTTP client SDK usage notes |
| HTTP | Others | V1.0.1 | HTTP client SDK usage notes |
Gelişmiş izleme özelliği ön koşulları
Gelişmiş izleme özelliği konsolda ek parametreler sunar; bu sayede mesaj tüketimi sırasında oluşturulan iz verilerini yanı sıra zamanlanmış, gecikmeli ve işlemsel mesajların iz verilerini görüntüleyebilirsiniz:
Producer: AccessKey
MQ Server: Arrive at Server At, Scheduled to Be Delivered At, Delivered At, Committed/Rolled back At
Consumer: Arrive at Consumer At, Wait Duration before Processing
Gelişmiş izleme özelliğini kullanmak için:
TCP SDK for Java: Sürümü V2.x.x.Final sürümüne yükseltin. Örnek aşağıdaki bölgelerden birinde dağıtılmış olmalıdır: Çin (Hangzhou), Çin (Qingdao), Çin (Pekin), Çin (Zhangjiakou), Çin (Hohhot), Çin (Shenzhen), Çin (Chengdu), Almanya (Frankfurt) veya Endonezya (Cakarta).
TCP SDK for C++: Sürümü V3.x.x sürümüne yükseltin. Tüm bölgelerde kullanılabilir.
Zaman aralığı sınırı
İz sorguları kayan bir 24 saatlik pencereyi kapsar. Yalnızca son 24 saat içinde üretilen mesajların izleri kullanılabilir. Örneğin, 30 Kasım 2023 tarihinde saat 15:09:48'de sorgu aralığı 29 Kasım 2023 tarihinde saat 15:09:48 ile 30 Kasım 2023 tarihinde saat 15:09:48 arasındadır.
Tüketim durumunun sorgu sonuçlarına etkisi
| Mesaj türü | Davranış |
|---|---|
| Normal messages | Mesaj tüketilene kadar Not Consumed gösterilir. Tüketildikten sonra hem gönderim hem de tüketim ayrıntıları görünür. |
| Ordered messages | Normal mesajlarla aynıdır. |
| Scheduled and delayed messages | Planlanan teslimat zamanından önce iz sorgulanabilir ancak mesaj sorgulanamaz. |
| Transactional messages | Yerel işlem taahhüt edilmeden önce iz sorgulanabilir ancak mesaj sorgulanamaz. |
Konsolda mesaj izi sorgulama
ApsaraMQ for RocketMQ console üzerinde oturum açın. Sol gezinme bölmesinde Instances seçeneğine tıklayın.
Üst gezinme çubuğunda bir bölge seçin; örneğin China (Hangzhou). Örneğinizin adına tıklayın.
Sol gezinme bölmesinde Message Trace seçeneğine tıklayın. Sayfanın sol üst köşesinde Create Query Task seçeneğine tıklayın.
-
Create Message Trace Query Task panelinde bir sorgu yöntemi seçin ve sorgu koşullarını yapılandırın. Ardından OK seçeneğine tıklayın.
ÖnemliKapsamı daraltmak ve sorguyu hızlandırmak için zaman aralığını mümkün olduğunca kesin ayarlayın.
Üç sorgu yöntemi mevcuttur:
Yöntem Eşleşme türü En uygun kullanım Query by Message ID Tam eşleşme Hızlı ve hassas aramalar. Önerilir. Query by Message Key Bulanık eşleşme (en fazla 1.000 sonuç) Mesaj kimliği mevcut değil ancak mesaja benzersiz bir anahtar atanmışsa kullanın. Query by Topic Aralık sorgusu Ne mesaj kimliğinin ne de mesaj anahtarının mevcut olmadığı düşük hacimli konular için uygundur. Yüksek aktarım hızına sahip konular için önerilmez; sonuçları filtrelemek zordur. Sorgu görevi Message Trace sayfasında görünür. Status sütunu Querying değerini gösteriyorsa, durum Query Completed olarak değişene kadar görev listesinin sağ üst köşesindeki
düğmesine tıklayarak yenileyin. İz ayrıntılarını görüntülemek için Actions sütunundaki Query Results seçeneğine tıklayın.
Kayıp bir mesajı sorun giderme

Bir mesaj beklenen şekilde alınmadıysa şu adımları izleyin:
Mesaj kimliğini, mesaj anahtarını, konuyu ve mesajın gönderildiği yaklaşık zamanı toplayın.
ApsaraMQ for RocketMQ konsolunda oturum açın ve toplanan bilgilerle bir sorgu görevi oluşturun.
-
Sorgu sonuçlarını analiz edin:
İzde Not Consumed görünüyorsa: Soruna mesaj birikiminin neden olup olmadığını kontrol etmek için Groups sayfasına gidin. Daha fazla bilgi için bkz. View consumer details.
Mesaj tüketildiyse: Tüketici istemcisini ve tüketim zaman damgasını belirlemek için tüketim ayrıntılarını kontrol edin. Ardından o istemcideki günlükleri inceleyin.
İz parametresi başvurusu
İz sonuçları sayfasında Sending Status ve Consumption Status sütunları özet bilgi sağlar. Tam izi görüntülemek için belirli bir mesaja tıklayın; iz Producer, MQ Server ve Consumer bölümleri halinde düzenlenir.
Temel bilgiler
| Parametre | Açıklama |
|---|---|
| Message ID | ApsaraMQ for RocketMQ tarafından otomatik olarak oluşturulan genel benzersiz tanımlayıcı. |
| Topic | Mesajın ait olduğu konu. |
| Message Key | Üretici tarafından ayarlanan iş tanımlayıcısı. Bir iş mantığını benzersiz şekilde tanımlar. |
| Message Tag | Bir konu içindeki mesajları sınıflandırmak için kullanılan etiket. |
Producer
| Parametre | Açıklama |
|---|---|
| AccessKey | Mesajı gönderen Alibaba Cloud hesabının veya Resource Access Management (RAM) kullanıcısının AccessKey ID'si. |
| Client IP Address | Üretici istemcisinin IP adresi. |
| Message Produced At | Mesajın üreticiden gönderildiği zaman damgası. |
| Sending RT | Mesajın gönderilmesi için geçen süre (milisaniye cinsinden). |
| Sending Status | Gönderme işleminin durumu. Bkz. Message status. |
MQ Server
| Parametre | Açıklama |
|---|---|
| Message Type | Normal messages, scheduled and delayed messages, ordered messages veya transactional messages. Hem zamanlanmış hem de gecikmeli mesajlar Scheduled Message olarak görüntülenir. |
| Arrive at Server At | Mesajın ApsaraMQ for RocketMQ broker'ına vardığı zaman. |
| Scheduled to Be Delivered At | Zamanlanmış mesajlar için planlanan teslimat zamanı. |
| Delivered At | Mesajın tüketici teslimatı için kullanılabilir hale geldiği zaman. |
| Committed/Rolled back At | Bir işlemin taahhüt edildiği veya geri alındığı zaman. |
Consumer
| Parametre | Açıklama |
|---|---|
| AccessKey | Tüketici tarafındaki Alibaba Cloud hesabının veya RAM kullanıcısının AccessKey ID'si. |
| Arrive at Consumer At | Mesajın tüketici istemcisine vardığı zaman. |
| Wait Duration before Processing | Mesajın tüketiciye varması ile işlemeye başlaması arasındaki süre. |
| Delivery Result | Tek bir teslimat denemesinin sonucu. Başarılı tüketim öncesinde bir mesaj birden çok kez teslim edilebilir. Bkz. Message status. |
| Client IP Address | Tüketici istemcisinin IP adresi. |
| Message Processing Started At | Tüketicinin mesajı işlemeye başladığı zaman damgası. |
| Message Processing Complete At | Tüketicinin işlemeyi bitirdiği zaman damgası. |
| Message Processing Duration | Tüketicinin mesajı işlemek için harcadığı süre. |
Mesaj durumu değerleri
| Tür | Olası değerler |
|---|---|
| Sending Status | Sent, Failed, Scheduling, Transactional Message Not Committed, Transactional Message Rolled Back |
| Consumption Status | All Successful, Partially Successful, All Failed, Not Consumed, No Consumption Result Returned, Consumed, Failed |
SSS
Bir mesajın izini neden bulamıyorum?
Büyük olasılıkla SDK'nız çok eski veya mesaj sorgu penceresinin dışında kalıyor. Şunları sırayla kontrol edin:
SDK sürümü: SDK'nızın minimum sürüm gereksinimlerini karşıladığını doğrulayın.
Zaman aralığı: İzler yalnızca son 24 saat içinde üretilen mesajlar için kullanılabilir.
Eşzamansız toplama boşluğu: İz verileri eşzamansız olarak toplanır ve eksik olabilir. Geçerli koşullara rağmen sorgu sonuç döndürmezse istemci günlüklerini doğrudan kontrol edin. Daha fazla bilgi için bkz. Logging settings.
İlgili API işlemleri
Mesaj izlerini programlı olarak sorgulayın:
OnsTraceQueryByMsgId -- Mesaj kimliğine göre sorgulama.
OnsTraceQueryByMsgKey -- Mesaj anahtarına göre sorgulama.
OnsTraceGetResult -- Sorgu sonuçlarını alma.