Tüm Ürünler
Search
Belge Merkezi

ApsaraMQ for RocketMQ:Dead-letter queues

Son Güncelleme:Oct 04, 2026

Bir tüketici (consumer), bir mesajı maksimum yeniden deneme sayısına kadar işlemeyi başaramadığında ApsaraMQ for RocketMQ bu mesajı bir dead-letter queue'ya taşır. Dead-letter mesajlar genellikle bir tüketici hatasını, aşağı akış bağımlılıklarındaki arızaları veya uyumsuz mesaj biçimlerini gösterir. Kök nedeni düzelttikten sonra mesajları yeniden işleme için konsoldan yeniden gönderin. Sorunu hemen çözemezseniz verilerin kaybolmasını önlemek amacıyla 3 günlük saklama süresi dolmadan önce mesajları dışa aktarın. Yeniden deneme davranışı hakkında daha fazla bilgi için bkz. Message retry.

Temel özellikler

Özellik Ayrıntılar
Kapsam Her dead-letter queue bir consumer group'a aittir; tek bir tüketici örneğine ait değildir. Aynı gruptan gelen tüm dead-letter mesajlar, kaynak konu (topic) ne olursa olsun aynı kuyrukta toplanır.
Oluşturma Talep üzerine oluşturulur. Bir grup dead-letter mesaj üretmediği sürece o grup için dead-letter queue bulunmaz.
Saklama Dead-letter mesajlar 3 gün sonra (normal mesajlarla aynı saklama süresi) süresi dolup otomatik olarak silinir.
Normal teslimat Dead-letter mesajlar normal teslimat yoluyla tüketilemez. Sorunu çözdükten sonra bunları konsoldan yeniden gönderin.

Dead-letter mesajlarını tanılama

Mesajlar bir dead-letter queue'da göründüğünde yeniden göndermeden önce kök nedeni araştırın:

  1. Mesaj işleme sırasında oluşan özel durumlar veya hatalar için tüketici günlüklerini kontrol edin.

  2. Mesaj içeriğini inceleyin -- Mesajı ID ile sorgulayın; bozuk veya beklenmeyen verileri tespit etmek için gövdesini ve özelliklerini gözden geçirin.

  3. Aşağı akış bağımlılıklarını doğrulayın -- Tüketicinin güvendiği veritabanlarının, API'lerin veya diğer hizmetlerin hata oluştuğu anda kullanılabilir olduğunu teyit edin.

  4. Tüketici zaman aşımı ayarlarını gözden geçirin -- Tüketicinin, mesajların zaman aşımına uğramadan ve yeniden denemeyi tetiklemeden önce işlenmesi için yeterli zamana sahip olduğundan emin olun.

Dead-letter mesajlarını sorgulama

ApsaraMQ for RocketMQ, konsolda iki sorgu yöntemi sunar:

Yöntem Girdi Eşleşme türü En uygun olduğu durum
Group ID'ye göre Group ID + zaman aralığı Aralık eşleşmesi Belirli bir zaman penceresindeki tüm dead-letter mesajlara göz atma
Message ID'ye göre Group ID + message ID Tam eşleşme Belirli bir mesajı bulma

Adımlar

  1. ApsaraMQ for RocketMQ konsolunda oturum açın. Sol gezinme bölmesinde Instances seçeneğine tıklayın.

  2. Üst gezinme çubuğunda bir bölge seçin; örneğin China (Hangzhou). Instances sayfasında yönetmek istediğiniz örneğin adına tıklayın.

  3. Sol gezinme bölmesinde Dead-letter Queues seçeneğine tıklayın.

  4. Dead-letter Queues sayfasında bir sorgu yöntemi seçin:

    • Query by Group ID -- Eşleşen tüm dead-letter mesajları almak için bir group ID ve zaman aralığı belirtin.

      Not

      Dead-letter mesajın oluşma zamanı, mesajın ilk gönderildiği an değil; tüm yeniden denemeler tükendikten sonra dead-letter queue'ya girdiği andır.

    • Query by Message ID -- Belirli bir mesajı bulmak için bir group ID ve message ID belirtin.

Dead-letter mesajlarını yeniden gönderme

Kök nedeni belirleyip düzelttikten sonra dead-letter mesajları konsoldan yeniden göndererek tüketimi yeniden deneyin.

Önemli
  • Sıralı mesajlar (ordered messages) bir dead-letter queue'dan yeniden gönderilemez. Bunları dışa aktarıp manuel olarak işleyin.

  • Yeniden gönderilen mesajlar dead-letter queue'da saklanmaya devam eder ve saklama süresi dolduğunda otomatik olarak silinir.

Tek bir mesajı yeniden gönderme

  1. Yukarıdaki yöntemlerden birini kullanarak dead-letter mesajını sorgulayın.

  2. Mesaj listesinde hedef mesajı bulun ve Actions sütunundaki More seçeneğine tıklayın.

  3. Resend seçeneğini belirleyin.

Birden çok mesajı yeniden gönderme

  1. Dead-letter mesajlarını group ID'ye göre sorgulayın.

  2. Yeniden göndermek istediğiniz mesajları seçin.

  3. Batch Resend Messages seçeneğine tıklayın.

Dead-letter mesajlarını dışa aktarma

3 günlük saklama süresi dolmadan önce mesajları korumak üzere dışa aktarın. Dışa aktarılan dosyalar CSV formatındadır.

Tek bir mesajı dışa aktarma

  1. Yukarıdaki yöntemlerden birini kullanarak dead-letter mesajını sorgulayın.

  2. Mesaj listesinde hedef mesajı bulun ve Actions sütunundaki More seçeneğine tıklayın.

  3. Export Message seçeneğini belirleyin.

Birden çok mesajı dışa aktarma

  1. Dead-letter mesajlarını group ID'ye göre sorgulayın.

  2. Dışa aktarmak istediğiniz mesajları seçin.

  3. Batch Export Messages seçeneğine tıklayın.

Dışa aktarılan alanlar

Alan Açıklama
instanceId Örnek kimliği
topic Mesajın ait olduğu konu
msgId Mesaj kimliği
bornHost Mesajı üreten üreticinin URL'si
bornTimestamp Mesajın üretildiği zaman damgası
storeTimestamp Broker'ın mesajı depoladığı zaman damgası
reconsumeTimes Başarısız olan tüketim denemesi sayısı
properties JSON formatındaki mesaj nitelikleri
body Base64 kodlamalı mesaj gövdesi
bodyCRC Mesaj gövdesinin CRC (Cyclic Redundancy Check) değeri

Sonraki adımlar

  • Message retry -- Yeniden deneme aralıklarının ve maksimum yeniden deneme sayısının bir mesajın ne zaman dead-letter mesaj haline geldiğini nasıl belirlediğini öğrenin.