Anda dapat menggunakan fitur penghentian yang mulus dari ApsaraMQ for RocketMQ untuk secara efektif mencegah kehilangan pesan dan masalah lain yang disebabkan oleh pemutusan klien secara tiba-tiba. Fitur ini membantu memastikan kontinuitas dan ketersediaan bisnis.
Ikhtisar fitur
Penghentian yang mulus adalah fitur inti yang diperkenalkan oleh ApsaraMQ for RocketMQ untuk meningkatkan keandalan broker dalam skenario operasi dan pemeliharaan (O&M). Dengan beberapa mekanisme perlindungan, fitur ini mencegah masalah yang disebabkan oleh pemutusan klien secara tiba-tiba, seperti kesalahan klien dan kehilangan pesan, serta membantu memastikan kontinuitas dan ketersediaan bisnis.
Mekanisme perlindungan
Larangan operasi penulisan ke node
Sebelum me-restart node penyimpanan, broker sementara melarang operasi penulisan ke node tersebut hingga tidak ada pesan baru yang ditulis ke dalamnya. Hal ini memastikan bahwa pesan yang sudah dikirim dari klien disimpan dengan benar.
Penutupan koneksi
ApsaraMQ for RocketMQ broker menggunakan frame GOAWAY yang didefinisikan dalam HTTP/2 untuk memulai penghentian koneksi yang mulus atau memberi tahu klien tentang penutupan koneksi yang akan datang. Mekanisme ini membantu mengoordinasikan antara broker dan klien selama terminasi koneksi, mencegah permintaan yang belum selesai tiba-tiba terputus dan memastikan stabilitas sistem.
Dampak
Produser: Semua permintaan yang diajukan oleh produser berhasil diproses.
Konsumen:
Sebagian besar pesan berhasil dikonsumsi.
Dalam kasus langka, sejumlah kecil pesan yang menumpuk di node penyimpanan yang sedang direstart dikirim ulang karena kegagalan komitmen offset.
Persyaratan pada versi klien
Untuk memastikan penggunaan normal penghentian yang mulus, SDK klien harus memenuhi persyaratan versi minimum berikut.
Bahasa pemrograman | Versi minimum yang didukung | Referensi |
Java (protokol gRPC) | 5.0.7 | |
Java (protokol Remoting) | 5.3.1 | |
Go | 5.1.0-rc.1 | |
Python | 5.0.4 | |
C++ | 5.0.2 | |
C# | 5.1.0 |