全部产品
Search
文档中心

Enterprise Distributed Application Service:Mematikan aplikasi Dubbo secara mulus

更新时间:Jul 02, 2025

Pengembang harus memperbarui aplikasi online tanpa terdeteksi oleh klien. Permintaan layanan aplikasi harus tetap diproses sesuai harapan selama penghentian. Untuk mencapai ini, konfigurasikan pemadaman mulus saat melakukan penyebaran, penghentian, rollback, penskalaan, atau reset aplikasi.

Informasi latar belakang

Pemadaman mulus memastikan permintaan layanan dari konsumen diproses sesuai harapan ketika aplikasi dihentikan. Secara ideal, aplikasi dapat diperbarui dengan cara yang aman dan andal saat tidak ada permintaan layanan. Namun, hal ini jarang terjadi dalam praktik sebenarnya.

Solusi tradisional melibatkan langkah-langkah manual seperti menghapus lalu lintas, menghentikan aplikasi, memperbaruinya, dan memulainya kembali. Dengan solusi ini, kontinuitas bisnis klien tidak akan terpengaruh.

Solusi inovatif menggunakan mekanisme otomatis pada tingkat kontainer atau kerangka kerja. Solusi ini secara otomatis menghapus lalu lintas dan memproses semua permintaan yang diterima sehingga proses pembaruan tidak terdeteksi oleh bisnis Anda, serta meningkatkan efisiensi operasional selama pembaruan. Pemadaman mulus adalah salah satu solusi inovatif tersebut.

Manfaat pemadaman mulus EDAS

Jika menggunakan solusi pemadaman mulus dari Dubbo sumber terbuka untuk mematikan aplikasi, Anda perlu menggunakan panggilan balik shutdown dan Quality of Service (QoS). Pendekatan ini memerlukan upaya pengembangan tambahan dan menetapkan persyaratan ketat pada versi Dubbo, yang dapat menyebabkan risiko potensial dan membuat aplikasi tidak berfungsi sesuai harapan.

EDAS mengintegrasikan pemadaman mulus ke dalam proses rilis untuk secara otomatis menerapkannya saat Anda menghentikan, menerapkan, rollback, mengecilkan skala, atau me-reset aplikasi di Elastic Compute Service (ECS) atau kluster Kubernetes. Anda tidak perlu mengonfigurasi pemadaman mulus secara manual di konsol EDAS. Solusi pemadaman mulus dari EDAS tidak menyebabkan kehilangan lalu lintas.

Periksa apakah pemadaman mulus sedang berlaku

Anda dapat memeriksa apakah pemadaman mulus sedang berlaku untuk aplikasi Anda sesuai kebutuhan bisnis. EDAS menyediakan demo aplikasi berikut: Provider dan Consumer. Anda dapat menggunakan demo aplikasi ini di kluster Container Service for Kubernetes (ACK) untuk memeriksa apakah pemadaman mulus sedang berlaku.

Prosedur:

  1. Unduh demo aplikasi Provider dan Consumer.

  2. Terapkan Provider dan Consumer di kluster ACK.

    Provider memiliki dua instance yang diterapkan, dan Consumer memiliki satu instance yang diterapkan. Untuk informasi lebih lanjut tentang cara menerapkan demo aplikasi, lihat Ikhtisar.

  3. Lihat status panggilan yang dilakukan dari Consumer ke Provider.

    1. Masuk ke pod tempat Consumer diterapkan dan jalankan perintah berikut untuk terus-menerus mengakses layanan Provider:

      #!/usr/bin/env bash
      while true
      do
          echo `curl -s -XGET http://localhost:18091/user/rest`
      done
    2. Lihat respons dari panggilan tersebut.

      Image - Successful call responses

      Respons di atas menunjukkan bahwa Consumer secara acak mengakses dua instance Provider. Alamat IP dari instance tersebut adalah 172.20.0.221 dan 172.20.0.223.

      Penting

      Jangan tutup jendela respons ini.

  4. Kecilkan satu instance dari Provider dan mulai ulang instance tersebut. Untuk informasi lebih lanjut, lihat Manajemen Siklus Hidup Aplikasi Kluster Kubernetes.

  5. Lihat respons dari panggilan lagi untuk memeriksa apakah pemadaman mulus sedang berlaku.

    Image - Call responses - Graceful shutdown

    Periksa status panggilan Consumer untuk memastikan pemadaman mulus sedang berlaku. Lihat log Consumer. Jika log menunjukkan tidak ada pengecualian yang terjadi, ketidaktersediaan instance tidak terdeteksi oleh Consumer.

    Respons di atas menunjukkan bahwa Consumer hanya mengakses instance Provider yang tersisa. Alamat IP dari instance tersebut adalah 172.20.0.221. Selama proses akses, tidak ada pengecualian panggilan yang terjadi, dan Consumer tidak terpengaruh.