Pemrosesan pesan dalam ApsaraMQ for RocketMQ mencakup aktivitas utama berikut: pengiriman pesan, penyimpanan pesan, dan konsumsi pesan. ApsaraMQ for RocketMQ mendefinisikan data terkait aktivitas ini sebagai parameter jejak. Jejak pesan mencakup hasil pengiriman, durasi pengiriman, waktu kedatangan pesan di broker, hasil konsumsi, durasi konsumsi, serta informasi klien. ApsaraMQ for RocketMQ memungkinkan Anda menanyakan jejak pesan secara visual. Jika pesan tidak dikirim atau dikonsumsi sesuai harapan, atau jika Anda ingin melacak pesan tertentu, Anda dapat menggunakan fitur ini untuk mendapatkan status pemrosesan pesan dalam setiap aktivitas.
Data jejak pesan
Dalam ApsaraMQ for RocketMQ, jejak lengkap pesan melibatkan produsen, broker, dan konsumen. Saat setiap peran memproses pesan, informasi terkait ditambahkan ke jejak. Informasi ini dapat digunakan untuk mendapatkan status pesan.

Catatan penggunaan
Setelah pesan dikirim, Anda dapat menanyakan jejak pesan berdasarkan atribut pesan di konsol ApsaraMQ for RocketMQ. Fitur ini berlaku untuk semua jenis pesan. Sebelum menggunakan fitur jejak pesan, perhatikan poin-poin berikut:
Rentang waktu untuk kueri jejak pesan
ApsaraMQ for RocketMQ memungkinkan Anda menanyakan jejak pesan yang diproduksi dalam rentang waktu 1 hari sebelum titik waktu saat ini. Misalnya, jika titik waktu saat ini adalah 15:09:48 pada 30 November 2023, Anda dapat menanyakan jejak pesan yang diproduksi dari 15:09:48 pada 29 November 2023 hingga 15:09:48 pada 30 November 2023.
Dampak status konsumsi terhadap hasil kueri
Jenis pesan | Deskripsi |
Jika pesan belum dikonsumsi, Not Consumed akan ditampilkan. Setelah pesan dikonsumsi, informasi pengiriman dan konsumsi akan ditampilkan. | |
Jika pesan belum dikonsumsi, Not Consumed akan ditampilkan. Setelah pesan dikonsumsi, informasi pengiriman dan konsumsi akan ditampilkan. | |
Jika waktu sistem saat ini lebih awal dari waktu yang ditentukan untuk konsumsi, jejak pesan dapat dikueri, tetapi pesan tidak dapat dikueri. | |
Sebelum transaksi lokal untuk pesan dikomit, jejak pesan dapat dikueri, tetapi pesan tidak dapat dikueri. |
Versi SDK yang mendukung fitur jejak pesan
Protokol | Bahasa | Versi | Deskripsi |
TCP | Java | V1.2.7.Final dan yang lebih baru | |
C/C++ | V1.1.2 dan yang lebih baru | ||
.NET | V1.1.2 dan yang lebih baru | ||
HTTP | Node.js | V1.0.2 dan yang lebih baru | |
Lainnya | V1.0.1 dan yang lebih baru |
Prasyarat untuk menggunakan fitur jejak pesan yang ditingkatkan
Fitur jejak pesan yang ditingkatkan memungkinkan Anda melihat lebih banyak data jejak di konsol ApsaraMQ for RocketMQ dibandingkan dengan fitur dasar. Anda dapat menanyakan data jejak yang dihasilkan selama konsumsi pesan, serta data jejak pesan terjadwal, pesan tertunda, dan pesan transaksional. Untuk informasi tentang parameter yang dikembalikan dalam hasil kueri jejak, lihat Parameter.
SDK Klien TCP untuk Java:
SDK Klien TCP untuk Java ditingkatkan ke V2.x.x.Final.
Instans harus diterapkan di salah satu wilayah berikut: Tiongkok (Hangzhou), Tiongkok (Qingdao), Tiongkok (Beijing), Tiongkok (Zhangjiakou), Tiongkok (Hohhot), Tiongkok (Shenzhen), Tiongkok (Chengdu), Jerman (Frankfurt), dan Indonesia (Jakarta).
SDK Klien TCP untuk C++:
SDK Klien TCP untuk C++ ditingkatkan ke V3.x.x.
Instans dapat diterapkan di wilayah mana pun.
Skenario umum
Jika pesan tidak dikirim atau dikonsumsi sesuai harapan dalam lingkungan produksi, Anda dapat menggunakan fitur jejak pesan untuk mendiagnosis masalah. Anda dapat menanyakan jejak pesan berdasarkan ID pesan, kunci pesan, atau topik dalam rentang waktu tertentu untuk memeriksa apakah pesan dikirim atau dikonsumsi sesuai harapan.

Contoh
Jika Anda tidak menerima pesan sesuai harapan dan ingin mengidentifikasi penyebab berdasarkan log terkait, lakukan langkah-langkah berikut untuk mendiagnosis masalah menggunakan jejak pesan:
Kumpulkan informasi tentang pesan, termasuk ID pesan, kunci pesan, topik, dan perkiraan waktu pesan dikirim.
Masuk ke konsol ApsaraMQ for RocketMQ dan buat tugas kueri berdasarkan informasi yang dikumpulkan untuk menanyakan jejak pesan.
Periksa hasil kueri dan analisis penyebab.
Jika Not Consumed ditampilkan dalam jejak, Anda dapat pergi ke halaman Groups untuk memeriksa status konsumsi dan menentukan apakah masalah disebabkan oleh akumulasi pesan. Untuk informasi lebih lanjut, lihat Lihat Detail Konsumen.
Jika pesan dikonsumsi, periksa informasi konsumsi untuk menemukan klien konsumen yang sesuai dan waktu saat pesan dikonsumsi. Kemudian, masuk ke klien konsumen untuk melihat log terkait.
Prosedur
Masuk ke Konsol ApsaraMQ for RocketMQ. Di panel navigasi sisi kiri, klik Instances.
Di bilah navigasi atas, pilih wilayah, seperti China (Hangzhou). Di halaman Instans, klik nama instans yang ingin Anda kelola.
Di panel navigasi sisi kiri, klik Message Trace. Di pojok kiri atas halaman yang muncul, klik Create Query Task.
Di panel Create Message Trace Query Task, konfigurasikan kondisi kueri berdasarkan kebutuhan bisnis Anda. Lalu, klik OK.
PentingAtur rentang waktu seakurat mungkin untuk mempersempit ruang lingkup kueri dan mempercepat proses kueri.
Metode kueri berikut didukung oleh fitur jejak pesan:
Query by Message ID: Metode ini direkomendasikan karena pencocokan tepat dan kecepatannya yang cepat.
Query by Message Key: Metode ini menggunakan pencarian kabur. Jika Anda menggunakan metode ini, Anda dapat menanyakan jejak hingga 1.000 pesan. Metode ini hanya cocok untuk skenario di mana Anda tidak mencatat ID pesan tetapi menentukan kunci yang secara unik mengidentifikasi pesan.
Query by Topic: Metode ini menggunakan kueri rentang. Metode ini cocok untuk skenario volume pesan kecil di mana Anda tidak mencatat ID pesan atau menentukan kunci pesan. Kami menyarankan agar Anda tidak menggunakan metode kueri ini. Dalam kebanyakan kasus, sejumlah besar pesan dihasilkan dalam topik dalam rentang waktu tertentu. Jika Anda menggunakan metode ini, Anda hampir tidak dapat mengidentifikasi pesan tertentu di antara pesan yang dikueri.
Setelah Anda membuat tugas kueri, Anda dapat melihat tugas kueri di halaman Message Trace. Jika Querying ditampilkan di kolom Status, jejak pesan tidak dapat dilihat. Anda dapat mengklik tombol
di pojok kanan atas daftar tugas untuk menyegarkan status tugas sampai status tugas berubah menjadi Query Completed.
Parameter
Parameter berikut dapat dilihat di konsol hanya jika instans dan versi SDK klien Anda memenuhi prasyarat untuk menggunakan fitur pelacakan pesan yang ditingkatkan. Untuk informasi lebih lanjut, lihat Prasyarat untuk Menggunakan Fitur Jejak Pesan yang Ditingkatkan.
AccessKey di bagian Producer
Arrive at Server At, Scheduled to Be Delivered At, Delivered At, dan Committed/Rolled back At terdapat di bagian MQ Server.
Arrive at Consumer At dan Wait Duration before Processing terdapat di bagian Consumer.
Tabel 1. Parameter
Bagian | Parameter | Deskripsi |
Basic Information | Message ID | Pengenal unik global pesan. Pengenal ini dihasilkan secara otomatis oleh ApsaraMQ for RocketMQ. |
Topic | Topik tempat pesan dimiliki. | |
Message Key | Pengenal bisnis pesan. Kunci pesan ditentukan oleh produsen pesan dan secara unik mengidentifikasi logika bisnis. | |
Message Tag | Tag yang digunakan untuk mengklasifikasikan pesan dalam topik. | |
Producer | AccessKey | ID AccessKey akun Alibaba Cloud Anda atau pengguna Resource Access Management (RAM). ID AccessKey digunakan untuk memverifikasi identitas pengguna. Saat Anda menggunakan SDK atau memanggil operasi API untuk mengakses sumber daya ApsaraMQ for RocketMQ, ID AccessKey diperlukan untuk verifikasi identitas. |
Client IP Address | Alamat IP klien produsen pesan. | |
Message Produced At | Cap waktu yang menunjukkan kapan pesan dikirim dari produsen. | |
Sending RT | Jumlah waktu yang digunakan untuk mengirim pesan. Unit: milidetik. | |
Sending Status | Status tugas pengiriman pesan. Untuk informasi lebih lanjut, lihat Sending Status di Status Pesan. | |
MQ Server | Message Type | Catatan Scheduled Message ditampilkan untuk parameter Message Type, terlepas dari apakah pesan tersebut adalah pesan terjadwal atau pesan tertunda. |
Arrive at Server At | Waktu saat pesan tiba di broker ApsaraMQ for RocketMQ. | |
Scheduled to Be Delivered At | Waktu yang dijadwalkan saat pesan terjadwal dapat dikirimkan ke konsumen. | |
Delivered At | Waktu saat pesan dapat dikirimkan ke konsumen. | |
Committed/Rolled back At | Waktu saat transaksi dikomit atau dibatalkan. | |
Consumer | AccessKey | ID AccessKey akun Alibaba Cloud Anda atau pengguna RAM. ID AccessKey digunakan untuk memverifikasi identitas pengguna. Saat Anda menggunakan SDK atau memanggil operasi API untuk mengakses sumber daya ApsaraMQ for RocketMQ, ID AccessKey diperlukan untuk otentikasi. |
Arrive at Consumer At | Waktu saat pesan tiba di klien konsumen. | |
Wait Duration before Processing | Durasi antara waktu saat pesan tiba di klien konsumen dan waktu saat pesan mulai dikonsumsi. | |
Delivery Result | Pesan mungkin perlu dikirimkan beberapa kali sebelum dikonsumsi. Parameter ini menunjukkan hasil dari satu pengiriman tertentu. Untuk informasi lebih lanjut, lihat Consumption Status di Status Pesan. | |
Client IP Address | Alamat IP klien konsumen. | |
Message Processing Started At | Cap waktu yang menunjukkan kapan pesan mulai dikonsumsi oleh klien. | |
Message Processing Complete At | Cap waktu yang menunjukkan kapan konsumen menyelesaikan konsumsi pesan. | |
Message Processing Duration | Jumlah waktu yang digunakan oleh konsumen untuk mengonsumsi pesan. |
Di halaman Jejak Pesan, temukan tugas kueri Anda dan klik Query Results di kolom Actions. Di halaman yang muncul, Anda dapat melihat status pengiriman dan status konsumsi pesan yang dikueri di kolom Sending Status dan Consumption Status. Anda juga dapat melihat status pengiriman dan status konsumsi setiap pesan di bagian Producer dan Consumer pada halaman detail jejak pesan. Tabel berikut menjelaskan kemungkinan status pengiriman dan konsumsi.
Tabel 2. Status Pesan
Jenis | Status |
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 |
FAQ
Mengapa saya tidak dapat menanyakan jejak pesan?
Periksa apakah versi SDK valid. Untuk informasi tentang versi SDK yang mendukung fitur jejak pesan, lihat Versi SDK yang Mendukung Fitur Jejak Pesan.
Periksa apakah rentang waktu yang Anda tentukan valid.
ApsaraMQ for RocketMQ memungkinkan Anda menanyakan jejak pesan yang diproduksi dalam waktu 1 hari sebelum titik waktu saat ini. Misalnya, jika titik waktu saat ini adalah 15:09:48 pada 30 November 2023, Anda dapat menanyakan jejak pesan yang diproduksi dari 15:09:48 pada 29 November 2023 hingga 15:09:48 pada 30 November 2023.
Data jejak pesan mungkin tidak lengkap karena fitur jejak pesan diimplementasikan dalam tautan asinkron. Sistem mungkin tidak mengembalikan hasil untuk kueri meskipun kondisi kueri yang Anda tentukan valid. Dalam hal ini, Anda dapat menanyakan log di klien Anda untuk mendapatkan detail konsumsi. Untuk informasi lebih lanjut, lihat Pengaturan Logging.
Referensi
Anda juga dapat menanyakan jejak pesan dengan memanggil operasi API berikut yang disediakan oleh ApsaraMQ for RocketMQ: