Apa yang harus saya lakukan jika hubungan subscription tidak konsisten?
Apa yang harus saya lakukan jika konsumen tidak dapat mengonsumsi pesan?
Jika mesin dalam kelompok konsumen mati, apakah pesan hilang selama restart?
Bagaimana cara melakukan troubleshooting kegagalan koneksi saat client pertama kali terhubung ke server?
Verifikasi bahwa konfigurasi berikut benar:
Periksa bahwa Titik akhir ditentukan dengan benar. Anda dapat memperoleh Titik akhir di halaman Instance Details di Konsol ApsaraMQ for RocketMQ.
Jalankan perintah telnet <Domain name in the endpoint> <Port number> untuk memeriksa konektivitas jaringan.
Jika aplikasi Anda dideploy on-premises atau memerlukan akses lintas wilayah tanpa menggunakan Cloud Enterprise Network (CEN), gunakan Titik akhir publik untuk mengakses instans ApsaraMQ for RocketMQ. Penggunaan Titik akhir publik akan dikenai biaya outbound traffic. Untuk informasi lebih lanjut, lihat Biaya akses jaringan publik untuk instans seri 4.x atau Biaya akses jaringan publik untuk instans seri 5.x.
Jika aplikasi Anda dideploy pada instans Alibaba Cloud Elastic Compute Service (ECS), gunakan Titik akhir VPC untuk mengakses instans ApsaraMQ for RocketMQ melalui virtual private cloud (VPC). Dalam skenario ini, pastikan instans ECS berada di Wilayah yang sama dengan instans ApsaraMQ for RocketMQ.
Untuk instans seri 5.0 yang mengaktifkan akses jaringan publik, konfirmasi apakah daftar putih telah dikonfigurasi. Secara default, akses jaringan publik mengizinkan koneksi dari semua alamat IP. Jika daftar putih dikonfigurasi, hanya alamat IP dalam daftar putih yang dapat mengakses ApsaraMQ for RocketMQ.
Periksa bahwa nama topik benar. Pastikan nama tersebut tidak mengandung spasi tambahan atau karakter khusus, serta topik telah dibuat di Konsol.
Periksa bahwa username dan password benar.
Untuk instans seri 5.0, masukkan username dan password untuk instans tersebut. Anda dapat memperolehnya dari halaman detail instans di Konsol.
Untuk instans seri 4.0, masukkan ID AccessKey dan Rahasia AccessKey dari Akun Alibaba Cloud atau pengguna Resource Access Management (RAM). Pastikan pengguna tersebut memiliki izin yang diperlukan. Untuk mendapatkan Pasangan Kunci Akses, lihat Buat Pasangan Kunci Akses.
Apa yang harus saya lakukan jika hubungan subscription tidak konsisten?
Login ke Konsol, buka halaman Groups, lalu lihat hubungan subscription dan informasi konsumen untuk kelompok yang ditentukan. Ubah kode subscription pada konsumen yang memiliki hubungan subscription tidak konsisten agar menjadi konsisten.
Untuk langkah troubleshooting lengkap, lihat
Bagaimana cara menangani akumulasi pesan?
Akumulasi pesan dapat terjadi karena alasan berikut:
Logika pemrosesan pesan konsumen mengalami anomali, sehingga mencegah pesan dikonsumsi.
Aplikasi produsen pesan mengalami lonjakan traffic. Laju produksi pesan jauh melebihi laju konsumsi, menyebabkan pesan menumpuk.
Layanan downstream yang digantungkan oleh konsumen mengalami peningkatan waktu respons, sehingga memblokir thread konsumsi.
Jumlah thread konsumsi tidak mencukupi. Konkurensi konsumsi yang rendah menyebabkan laju konsumsi tertinggal dari laju produksi.
Periksa log client atau informasi stack untuk menentukan penyebab anomali tersebut. Untuk informasi lebih lanjut, lihat Cara menangani akumulasi pesan.
Apa yang harus saya lakukan jika konsumen tidak dapat mengonsumsi pesan?
Login ke ApsaraMQ for RocketMQconsole dan buka halaman Groups. Periksa apakah konsumen sedang online dan koneksi client normal. Jika client tidak terhubung, periksa log client untuk mengidentifikasi dan memperbaiki error tersebut.
Periksa apakah hubungan subscription konsisten. Jika tidak konsisten, temukan client konsumen berdasarkan detail hubungan subscription dan ubah kode subscription pesan pada client tersebut.
Jika mesin dalam kelompok konsumen mati, apakah pesan hilang selama restart?
Tidak, pesan tidak hilang. ApsaraMQ for RocketMQ menggunakan subscription persisten. Pesan tidak akan hilang meskipun kelompok konsumen offline atau terjadi anomali konsumsi. Saat client konsumen kembali online, konsumsi dilanjutkan dari Offset tempat terakhir kali berhenti.
Apakah tag pesan boleh kosong saat berlangganan pesan?
Tidak boleh. Jika Anda menetapkan tag kosong saat berlangganan pesan, konsumen tidak akan menerima pesan apa pun. Untuk berlangganan semua pesan dalam suatu topik, atur tag menjadi *. Contoh kode berikut menunjukkan ilustrasinya:
String topic = "Your Topic";
// Gunakan tag untuk menyaring pesan. Ini berlangganan semua pesan.
FilterExpression filterExpression = new FilterExpression("*", FilterExpressionType.TAG);
pushConsumer.subscribe(topic, filterExpression);Untuk informasi lebih lanjut, lihat Penyaringan berbasis tag.
Bagaimana cara mengatur offset konsumen awal saat membuat kelompok konsumen baru untuk berlangganan topik yang sudah ada?
Anda tidak dapat mengatur offset konsumen awal saat membuat kelompok konsumen. Secara default, ketika konsumen pertama kali dijalankan, konsumsi dimulai dari pesan paling awal dalam topik, baik itu topik baru maupun yang sudah ada.
Setelah konsumen pertama kali dijalankan, Anda dapat mengatur ulang offset konsumen di ApsaraMQ for RocketMQ Konsol. Untuk informasi lebih lanjut, lihat Atur ulang offset konsumen.
Apa yang harus saya lakukan jika konsumen online tidak mengonsumsi pesan tetapi kelompok tersebut mengalami akumulasi pesan?
Periksa metode subscription yang digunakan oleh kelompok konsumen untuk topik tersebut. Jika konsumen berlangganan topik menggunakan penyaringan pesan, pesan yang tidak sesuai dengan kondisi filter akan dihitung sebagai akumulasi. Ini merupakan perilaku yang diharapkan. Untuk informasi lebih lanjut, lihat Penyaringan pesan.
Jika Anda menggunakan penyaringan SQL atau berbasis tag dan kelompok mengalami akumulasi pesan meskipun tidak ada pesan yang dikonsumsi, jumlah pesan yang terakumulasi dihitung sebagai berikut.
Penyaringan SQL: Jumlah pesan terakumulasi = Jumlah pesan siap + Jumlah pesan inflight - Jumlah pesan yang tidak memenuhi kondisi penyaringan
Penyaringan berbasis tag: Jumlah pesan terakumulasi = (Jumlah pesan siap + Jumlah pesan inflight) × Persentase pesan yang sesuai dengan tag
Persentase pesan yang sesuai dengan tag = Jumlah pesan yang sesuai dengan tag dalam sampel / Total jumlah pesan yang disampel
Apa yang harus saya lakukan jika Dasbor menunjukkan akumulasi pesan yang besar, tetapi pesan tersebut sudah dikonsumsi di sisi konsumen?
Masalah ini dapat terjadi jika Anda menggunakan kit pengembangan perangkat lunak (SDK) protokol Remoting dan mengatur mode konsumsi ke Konsumsi siaran pada konsumen. Server menentukan akumulasi pesan berdasarkan informasi offset konsumen. Namun, dalam mode Konsumsi siaran, offset konsumen dipertahankan di sisi client. Akibatnya, Dasbor mungkin salah menampilkan akumulasi pesan.
Selain itu, jika konsumen menggunakan penyaringan berbasis tag atau SQL, pesan yang tidak sesuai dengan kondisi filter dianggap terakumulasi.