Tutorial: Menggunakan Dasbor Pemutus Sirkuit dengan Azure Spring Apps

Peringatan

Hystrix tidak lagi dalam pengembangan aktif dan saat ini dalam mode pemeliharaan.

Catatan

Azure Spring Apps adalah nama baru untuk layanan Azure Spring Cloud. Meskipun layanan memiliki nama baru, Anda akan melihat nama lama di beberapa tempat untuk sementara saat kami berupaya memperbarui aset seperti cuplikan layar, video, dan diagram.

Artikel ini berlaku untuk: ✔️ Java ❌ C#

Artikel ini berlaku untuk: ✔️ Basic/Standard ✔️ Enterprise

Artikel ini menunjukkan cara menggunakan Netflix Turbine dan Netflix Hystrix di Azure Spring Apps. Spring Cloud Netflix Turbine banyak digunakan untuk menggabungkan beberapa streaming metrik Netflix Hystrix sehingga streaming dapat dipantau dalam satu tampilan menggunakan dasbor Hystrix.

Catatan

Netflix Hystrix banyak digunakan di banyak aplikasi Spring yang ada tetapi tidak lagi dalam pengembangan aktif. Jika Anda mengembangkan proyek baru, Anda harus menggunakan implementasi Spring Cloud Circuit Breaker seperti resilience4j sebagai gantinya. Berbeda dari Turbin yang ditunjukkan dalam tutorial ini, kerangka kerja Pemutus Sirkuit Spring Cloud menyatukan semua penerapan alur data metriknya ke Micrometer, yang juga didukung oleh Azure Spring Apps. Untuk informasi selengkapnya, lihat Mengumpulkan Metrik Pemutus Sirkuit Spring Cloud Resilience4J dengan Micrometer (Pratinjau).

Menyiapkan aplikasi contoh Anda

Sampel diberi fork dari repositori ini.

Kloning repositori sampel ke lingkungan pengembangan Anda:

git clone https://github.com/Azure-Samples/azure-spring-apps-samples.git
cd azure-spring-apps-samples/hystrix-turbine-sample

Bangun tiga aplikasi yang ada dalam tutorial ini:

  • user-service: Layanan REST sederhana yang memiliki titik akhir tunggal /personalized/{id}
  • layanan rekomendasi: Layanan REST sederhana yang memiliki satu titik akhir /rekomendasi, yang dipanggil oleh layanan pengguna.
  • hystrix-turbine: Layanan dasbor Hystrix untuk menampilkan aliran Hystrix dan layanan Turbin yang menggabungkan aliran metrik Hystrix dari layanan lain.
mvn clean package -D skipTests -f user-service/pom.xml
mvn clean package -D skipTests -f recommendation-service/pom.xml
mvn clean package -D skipTests -f hystrix-turbine/pom.xml

Memprovisikan instans Azure Spring Apps Anda

Ikuti langkah-langkah di bagian Provisikan instans Azure Spring Apps di Mulai Cepat: Sebarkan aplikasi pertama Anda ke Azure Spring Apps.

Menyebarkan aplikasi Anda ke Azure Spring Apps

Aplikasi ini tidak menggunakan Config Server, jadi tidak perlu menyiapkan Config Server untuk Azure Spring Apps. Buat dan sebarkan sebagai berikut:

az configure --defaults \
    group=<resource-group-name> \
    spring=<Azure-Spring-Apps-instance-name>

az spring app create --name user-service --assign-endpoint
az spring app create --name recommendation-service
az spring app create --name hystrix-turbine --assign-endpoint

az spring app deploy \
    --name user-service \
    --artifact-path user-service/target/user-service.jar
az spring app deploy \
    --name recommendation-service \
    --artifact-path recommendation-service/target/recommendation-service.jar
az spring app deploy \
    --name hystrix-turbine \
    --artifact-path hystrix-turbine/target/hystrix-turbine.jar

Memverifikasi aplikasi Anda

Setelah semua aplikasi berjalan dan dapat ditemukan, akses user-service dengan jalur https://<Azure-Spring-Apps-instance-name>-user-service.azuremicroservices.io/personalized/1 dari browser Anda. Jika user-service dapat mengakses recommendation-service, Anda harus mendapatkan output berikut. Refresh halaman web beberapa kali jika tidak berfungsi.

[{"name":"Product1","description":"Description1","detailsLink":"link1"},{"name":"Product2","description":"Description2","detailsLink":"link3"},{"name":"Product3","description":"Description3","detailsLink":"link3"}]

Mengakses dasbor dan aliran metrik Hystrix Anda

Verifikasi menggunakan titik akhir publik atau titik akhir pengujian privat.

Menggunakan titik akhir publik

Akses hystrix-turbin dengan jalur https://<SERVICE-NAME>-hystrix-turbine.azuremicroservices.io/hystrix dari browser Anda. Gambar berikut menunjukkan dasbor Hystrix yang berjalan di aplikasi ini.

Cuplikan layar Dasbor Hystrix yang memperlihatkan detail Penundaan dan Judul.

Salin URL aliran https://<SERVICE-NAME>-hystrix-turbine.azuremicroservices.io/turbine.stream?cluster=default Turbine ke dalam kotak teks, dan klik Pantau Aliran. Tindakan ini menampilkan dasbor. Jika tidak ada yang ditampilkan di penampil, tekan titik akhir user-service untuk membuat aliran.

Cuplikan layar halaman aliran Hystrix yang memperlihatkan detail Kumpulan Sirkuit dan Alur.

Catatan

Dalam produksi, dasbor dan aliran metrik Hystrix tidak boleh diekspos ke Internet.

Menggunakan titik akhir pengujian privat

Aliran metrik Hystrix juga dapat diakses dari test-endpoint. Sebagai layanan backend, kami tidak menetapkan titik akhir publik untuk recommendation-service, tetapi kami dapat menunjukkan metriknya dengan titik akhir pengujian di https://primary:<KEY>@<SERVICE-NAME>.test.azuremicroservices.io/recommendation-service/default/actuator/hystrix.stream

Cuplikan layar halaman aliran titik akhir pengujian Hystrix.

Sebagai aplikasi web, dasbor Hystrix harus berfungsi di test-endpoint. Jika tidak berfungsi dengan baik, mungkin ada dua alasan: pertama, menggunakan test-endpoint URL dasar yang diubah dari / ke /<APP-NAME>/<DEPLOYMENT-NAME>, atau, kedua, aplikasi web menggunakan jalur absolut untuk sumber daya statis. Untuk membuatnya berfungsi di test-endpoint, Anda mungkin perlu mengedit <base> di file ujung-depan secara manual.

Langkah berikutnya