全部产品
Search
文档中心

ApsaraMQ for RocketMQ:Penghentian yang mulus

更新时间:Jun 28, 2025

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

SDK untuk Java

Java (protokol Remoting)

5.3.1

SDK untuk Java

Go

5.1.0-rc.1

SDK untuk Go

Python

5.0.4

SDK untuk Python

C++

5.0.2

SDK untuk C++

C#

5.1.0

SDK untuk C#