Fitur Penyedia Zona Internal Pertama dari Microservices Engine (MSE) berfungsi sebagai kebijakan penyeimbangan beban. Mekanismenya secara dinamis mengidentifikasi atribut zona tempat konsumen dan penyedia ditempatkan, memprioritaskan pengiriman permintaan ke penyedia di zona yang sama. Dibandingkan dengan algoritma polling tradisional, fitur ini mengurangi transfer lalu lintas lintas zona, menurunkan latensi jaringan, meningkatkan kecepatan respons layanan, serta memperkuat kemampuan pemulihan bencana sistem. Topik ini menjelaskan cara mengonfigurasi fitur Penyedia Zona Internal Pertama di konsol MSE.
Prasyarat
Tata Kelola Layanan Mikro MSE telah diaktifkan. Untuk informasi lebih lanjut, lihat Aktivasi Tata Kelola Layanan Mikro.
Tata Kelola Layanan Mikro MSE telah diaktifkan untuk aplikasi yang diinginkan dan konsumennya. Untuk informasi lebih lanjut, lihat Aktifkan Tata Kelola Layanan Mikro untuk aplikasi mikro Java dalam kluster ACK atau ACS dan Aktifkan Tata Kelola Layanan Mikro untuk aplikasi mikro pada Instance ECS.
Fitur Penyedia Zona Internal Pertama didukung oleh layanan Dubbo dan Spring Cloud. Fitur ini tidak didukung oleh layanan Kubernetes.
Sebelum menggunakan fitur Penyedia Zona Internal Pertama yang disediakan oleh MSE, Anda harus menetapkan ambang batas keamanan yang tepat. Fitur ini hanya diimplementasikan ketika persentase penyedia di zona melebihi ambang batas keamanan yang ditentukan.
Istilah
Zona: Zona adalah area fisik di wilayah yang sama dengan pasokan daya dan jaringan independen. Contohnya, wilayah China (Beijing) memiliki 12 zona, termasuk Zona A Beijing dan Zona B Beijing. Latensi jaringan antara instance aplikasi di zona yang sama lebih rendah dibandingkan dengan latensi jaringan antar-zona.
Konsumen dan penyedia: Dalam skenario layanan mikro, instance aplikasi yang memulai panggilan disebut konsumen, sedangkan instance aplikasi yang menyediakan layanan disebut penyedia. Dalam banyak kasus, aplikasi dapat berfungsi sebagai penyedia dan konsumen secara bersamaan.
RT: Waktu bolak-balik permintaan, yaitu periode dari waktu klien memulai permintaan hingga menerima respons dari server.
Instance: Instance disebut sebagai node dalam istilah sehari-hari. Dalam skenario Kubernetes, pod dari beban kerja aplikasi dianggap sebagai instance aplikasi. Dalam skenario Elastic Compute Service (ECS), proses aplikasi tunggal pada Instance ECS dianggap sebagai instance aplikasi.
Manfaat
Fitur Penyedia Zona Internal Pertama berfungsi sebagai kebijakan penjadwalan trafik dalam arsitektur layanan mikro. Fitur ini menggunakan mekanisme penyeimbangan beban untuk memilih penyedia di zona yang sama dengan konsumennya. Dalam arsitektur multi-zona, fitur ini menawarkan manfaat seperti:
Dibandingkan dengan panggilan lintas zona, panggilan intra-zona mengurangi RT seluruh sistem.
Panggilan layanan mikro dilakukan di zona yang sama. Jika terjadi kegagalan di satu zona, dampaknya terbatas pada zona tersebut.
Fitur Penyedia Zona Internal Pertama tidak wajib. Namun, jika Anda ingin mengurangi RT sistem secara keseluruhan dan meningkatkan ketersediaan sistem, kami sarankan Anda mengaktifkan fitur ini.
Deskripsi fitur
Tata Kelola Layanan Mikro MSE menyediakan fitur Penyedia Zona Internal Pertama. Saat fitur ini diaktifkan untuk aplikasi, konsumennya memprioritaskan memulai panggilan ke instance aplikasi di zona yang sama. Sebagai contoh, fitur ini diaktifkan untuk Aplikasi P. Ketika Aplikasi C1, C2, dan C3 memulai panggilan ke Aplikasi P, aplikasi tersebut memprioritaskan memanggil instance Aplikasi P di zona tempat aplikasi tersebut ditempatkan.
Gambar berikut menunjukkan model panggilan aplikasi ketika fitur Penyedia Zona Internal Pertama yang disediakan oleh MSE tidak diaktifkan.

Gambar berikut menunjukkan model panggilan aplikasi ketika fitur Penyedia Zona Internal Pertama yang disediakan oleh MSE diaktifkan.

Fitur Penyedia Zona Internal Pertama yang disediakan oleh MSE hanya efektif untuk satu penyedia. Jika Anda mengaktifkan fitur Penyedia Zona Internal Pertama untuk sebuah aplikasi, semua konsumen aplikasi tersebut memprioritaskan memanggil instance aplikasi di wilayah tempat konsumen tersebut ditempatkan.
Ambang batas keamanan
Saat menggunakan fitur Penyedia Zona Internal Pertama yang disediakan oleh MSE, Anda mungkin menghadapi masalah berikut: Setelah mengaktifkan fitur Penyedia Zona Internal Pertama untuk aplikasi, semua konsumen memanggil penyedia di zona yang sama. Jika jumlah penyedia di zona kurang dari jumlah konsumen, permintaan dari konsumen tertentu mungkin gagal. Faktanya, tidak semua node setiap aplikasi didistribusikan secara merata di seluruh zona. Dalam beberapa kasus, sejumlah kecil penyedia ditempatkan di zona, sehingga mungkin tidak dapat menangani panggilan lalu lintas yang dimulai oleh konsumen di zona tersebut.
Gambar berikut menunjukkan skenario di mana tiga penyedia ditempatkan di Zona A, tiga penyedia ditempatkan di Zona B, dan satu penyedia ditempatkan di Zona C. Jika Anda mengaktifkan fitur Penyedia Zona Internal Pertama untuk aplikasi, sepertiga lalu lintas diterima di setiap zona dengan asumsi bahwa jumlah konsumen di setiap zona sama. Namun, dalam skenario ini, hanya satu penyedia yang tersedia di Zona C. Lalu lintas yang harus ditangani oleh penyedia tunggal tersebut adalah tiga kali lipat dari lalu lintas yang harus ditangani oleh setiap penyedia di wilayah lain. Ini dapat menimbulkan risiko stabilitas.
Untuk mengatasi masalah ini, MSE memungkinkan Anda mengonfigurasi ambang batas keamanan. Jika fitur Penyedia Zona Internal Pertama diaktifkan untuk aplikasi, dan persentase instance aplikasi di zona kurang dari ambang batas keamanan yang ditentukan, konsumen di zona tersebut tidak mengimplementasikan logika fitur selama panggilan ke aplikasi. Sebagai gantinya, kebijakan acak atau round-robin default dari kerangka kerja layanan mikro diterapkan.
Sebagai contoh, jumlah instance aplikasi di Zona A, B, dan C adalah 2, 2, dan 1, masing-masing, mencakup 40%, 40%, dan 20% dari semua instance aplikasi. Jika Anda mengaktifkan fitur Penyedia Zona Internal Pertama untuk aplikasi dan menetapkan ambang batas keamanan menjadi 30%, konsumen di Zona C tidak memprioritaskan memanggil penyedia di zona yang sama. Konsumen di Zona A dan B tetap dapat memprioritaskan memanggil penyedia di zona yang sama.
Konfigurasikan fitur Penyedia Zona Internal Pertama
Prasyarat
Fitur Penyedia Zona Internal Pertama diterapkan pada panggilan antar-instance aplikasi yang ditempatkan di zona berbeda. Ini didasarkan pada asumsi bahwa lingkungan penempatan sumber daya memiliki beberapa zona, dan instance aplikasi ditempatkan di zona tersebut.
Jika instance aplikasi Anda tidak sepenuhnya didistribusikan secara merata di seluruh zona, jangan gunakan fitur Penyedia Zona Internal Pertama.
Jika instance aplikasi Anda didistribusikan secara merata di seluruh zona, kami sarankan Anda menggunakan fitur Penyedia Zona Internal Pertama.
Jika jumlah instance aplikasi yang ditempatkan di zona berbeda sedikit berbeda, kami tetap menyarankan Anda menggunakan fitur Penyedia Zona Internal Pertama. Namun, Anda perlu melakukan estimasi dan mengonfigurasi ambang batas keamanan. Untuk informasi lebih lanjut tentang cara melakukan estimasi dan mengonfigurasi ambang batas keamanan, lihat Konfigurasikan Ambang Batas Keamanan.
Tempatkan Instance Aplikasi di Zona Berbeda
Jika Anda menggunakan Alibaba Cloud Container Service for Kubernetes (ACK) untuk mengelola dan menerapkan aplikasi, pastikan konfigurasi jaringan pool node Anda berisi vSwitch di beberapa zona. Ini memastikan bahwa beban kerja Anda dapat ditempatkan di node di zona berbeda. Selain itu, kami sarankan Anda menempatkan instance aplikasi di beberapa zona. Anda dapat menambahkan batasan penyebaran topologi pod ke
spec > template > specdari beban kerja Anda. Untuk informasi lebih lanjut tentang cara menempatkan instance aplikasi di zona berbeda, lihat Konfigurasi yang Disarankan untuk Membuat Kluster HA.topologySpreadConstraints: - maxSkew: 1 topologyKey: "topology.kubernetes.io/zone" whenUnsatisfiable: ScheduleAnywayJika aplikasi Anda ditempatkan pada Instance Elastic Compute Service (ECS), Anda harus memilih vSwitch di zona berbeda untuk Instance ECS saat membuat instance tersebut. Saat menerapkan aplikasi, Anda dapat secara manual menempatkan instance aplikasi di zona tersebut.
Prosedur
Masuk ke Konsol MSE, dan pilih wilayah di bilah navigasi atas.
Di panel navigasi sisi kiri, pilih . Di halaman yang muncul, klik kartu sumber daya aplikasi yang ingin Anda kelola.
Di panel navigasi sisi kiri, klik Traffic management. Di halaman yang muncul, klik tab Intra-zone Provider First.
Klik Settings di sebelah Configuration Information, aktifkan sakelar Enable Status, tentukan Security Threshold, dan kemudian klik OK.
Setelah Anda melakukan langkah-langkah di atas, ketika konsumen memulai panggilan ke aplikasi, konsumen memprioritaskan memilih penyedia di zona yang sama. Setelah Anda mengklik OK, fitur langsung berlaku tanpa perlu Anda memulai ulang aplikasi.
Konfigurasikan ambang batas keamanan
Setelah Anda mengonfigurasi ambang batas keamanan, jika persentase instance penyedia aplikasi di zona tunggal kurang dari ambang batas keamanan yang ditentukan, konsumen di zona tersebut tidak memprioritaskan memanggil instance penyedia di zona yang sama. Sebagai gantinya, kebijakan panggilan acak atau round-robin default dari kerangka kerja layanan mikro digunakan. Untuk informasi lebih lanjut, lihat Ambang Batas Keamanan dalam topik ini.
Anda harus mengonfigurasi ambang batas keamanan dengan benar berdasarkan status penempatan aplikasi bisnis Anda. Tujuan utamanya adalah untuk mencegah sejumlah kecil instance aplikasi di zona tertentu kewalahan oleh permintaan berlebih. Anda dapat mengonfigurasi ambang batas keamanan dengan merujuk pada skenario berikut:
Skenario 1 (umum): Instance aplikasi didistribusikan secara merata di seluruh zona. Dalam skenario ini, kami sarankan Anda menetapkan ambang batas keamanan menjadi nilai yang kurang dari 1 dibagi dengan jumlah zona. Sebagai contoh, aplikasi memiliki enam instance, di mana dua instance ditempatkan di Zona A, dua instance ditempatkan di Zona B, dan dua instance ditempatkan di Zona C. Instance aplikasi di setiap zona mencakup 33,33% dari semua instance aplikasi. Dalam hal ini, Anda dapat menetapkan ambang batas keamanan menjadi 33%.
Skenario 2: Instance aplikasi tidak didistribusikan secara merata di seluruh zona. Dalam hal ini, Anda harus mengonfigurasi ambang batas keamanan berdasarkan jumlah instance di setiap zona. Sebagai contoh, untuk aplikasi, dua instance aplikasi ditempatkan di Zona A, dua instance aplikasi ditempatkan di Zona B, dan satu instance aplikasi ditempatkan di Zona C. Diharapkan bahwa fitur Penyedia Zona Internal Pertama tidak diimplementasikan di Zona C. Dalam hal ini, Anda dapat menetapkan ambang batas keamanan menjadi 30%. Instance aplikasi di Zona A mencakup 40% dari semua instance aplikasi. Persentase ini sama dengan persentase instance aplikasi di Zona B. Instance aplikasi di Zona C mencakup 20% dari semua instance aplikasi. Alih-alih logika yang diimplementasikan oleh fitur Penyedia Zona Internal Pertama, kebijakan acak atau round-robin default diterapkan di Zona C.
Nilai default ambang batas keamanan adalah 20%, yang biasanya digunakan untuk verifikasi di lingkungan pengujian dan percobaan. Kami sarankan Anda mengonfigurasi ambang batas keamanan berdasarkan status penempatan instance aplikasi di zona.
Catatan penggunaan
Jika persentase penyedia di zona lebih besar secara ketat dari ambang batas keamanan yang ditentukan, fitur Penyedia Zona Internal Pertama berlaku. Jika persentase penyedia di zona sama dengan ambang batas keamanan, fitur Penyedia Zona Internal Pertama tidak berlaku.
Idealnya, penyedia dan konsumen didistribusikan secara merata di seluruh zona. Jika penyedia dan konsumen tidak didistribusikan secara merata tetapi ditempatkan secara terpusat di zona tertentu, beban lalu lintas mungkin tidak seimbang di zona berbeda setelah fitur Penyedia Zona Internal Pertama diaktifkan.
Saat layanan dirilis, jumlah instance aplikasi di setiap zona mungkin berubah dalam periode waktu singkat, terutama selama pembaruan bergulir di Kubernetes. Dalam hal ini, persentase instance aplikasi di beberapa zona mungkin tidak mencapai ambang batas keamanan, yang dapat mengakibatkan panggilan penyedia lintas zona dalam periode waktu singkat.
Fitur Penyedia Zona Internal Pertama hanya cocok untuk isolasi pada tingkat lalu lintas, dan tidak boleh digunakan untuk isolasi pada tingkat bisnis. Jika Anda menggunakan fitur ini, Anda harus memastikan bahwa panggilan penyedia lintas zona diizinkan.
Saat ambang batas keamanan berlaku, sistem memeriksa apakah persentase instance aplikasi yang tersedia di zona mencapai ambang batas keamanan. Jumlah instance aplikasi yang tersedia dan jumlah total instance aplikasi dihitung berdasarkan hasil penyaringan logis rilis canary end-to-end. (Dalam kebanyakan kasus, sistem bisnis menggunakan fitur rilis canary end-to-end hanya saat versi bisnis dirilis. Anda tidak perlu memperhatikan item ini. Jika sistem Anda menggunakan fitur rilis canary end-to-end untuk penyaringan rute normal selain pelepasan versi, Anda perlu memperhatikan item ini.)
Sebagai contoh, aplikasi memiliki lima instance, di mana dua instance ditempatkan di Zona A, dua instance ditempatkan di Zona B, dan satu instance ditempatkan di Zona C. Di Zona A dan B, satu instance canary tersedia. Untuk konsumen yang menggunakan versi resmi di Zona A, hanya satu instance aplikasi di setiap zona yang dapat dipanggil. Jika ambang batas keamanan diatur menjadi 35% (kurang dari 40%), fitur Penyedia Zona Internal Pertama tidak berlaku di Zona A dan B untuk konsumen yang menggunakan versi resmi. Untuk konsumen yang menggunakan versi canary di Zona A, satu instance aplikasi di Zona A dan B dapat dipanggil. Tidak ada instance aplikasi yang dapat dipanggil di Zona C. Fitur Penyedia Zona Internal Pertama berlaku untuk konsumen yang menggunakan versi canary.
Pengamatan trafik dari perspektif zona
Node dan distribusi trafik di zona
Fitur Penyedia Zona Internal Pertama menyediakan kemampuan pengamatan. Setelah Anda mengaktifkan Tata Kelola Layanan Mikro MSE untuk aplikasi, Anda dapat melihat distribusi penempatan instance aplikasi saat ini dan beban lalu lintas di setiap zona di tab Penyedia Zona Internal Pertama.


Anda juga dapat melihat informasi tersebut jika fitur Penyedia Zona Internal Pertama tidak diaktifkan untuk aplikasi.
Jika Anda menggunakan Edisi Profesional Tata Kelola Layanan Mikro atau jika namespace Anda adalah namespace Edisi Profesional, Anda tidak dapat melihat informasi tersebut. Gunakan metode berikut untuk meningkatkan namespace:
Tingkatkan namespace dari Edisi Profesional ke Edisi Perusahaan. Untuk informasi lebih lanjut, lihat Manajemen Namespace Layanan Mikro.
Poin-poin penting yang perlu diperhatikan
Di bagian Pengamatan Trafik tab Penyedia Zona Internal Pertama, Anda dapat melihat jumlah instance aplikasi yang ditempatkan di setiap zona di Data Keseluruhan. Data visual dapat menunjukkan distribusi instance aplikasi yang tidak seimbang di zona berbeda. Kami sarankan Anda menempatkan instance aplikasi secara merata di seluruh zona untuk meningkatkan ketersediaan sistem.
Jika fitur Penyedia Zona Internal Pertama telah diaktifkan untuk aplikasi Anda, Anda perlu memeriksa jumlah trafik di zona, jumlah trafik yang diproses di setiap zona, dan jumlah instance aplikasi yang ditempatkan di setiap zona. Sebagai contoh, sejumlah besar instance aplikasi ditempatkan di zona, tetapi jumlah trafik yang diproses di zona tersebut kecil. Contoh lainnya adalah sejumlah kecil instance aplikasi ditempatkan di zona, tetapi jumlah trafik yang diproses di zona tersebut besar. Dalam kedua contoh tersebut, Anda perlu menyesuaikan ambang batas keamanan untuk mencegah masalah stabilitas yang disebabkan oleh distribusi trafik yang tidak seimbang.
RT yang Berkurang
Jika Anda tidak mengaktifkan fitur Penyedia Zona Internal Pertama, kebijakan acak atau round-robin default digunakan untuk panggilan layanan mikro. Ini menyebabkan sejumlah besar panggilan layanan mikro lintas zona. Gambar berikut menunjukkan data aplikasi ketika fitur Penyedia Zona Internal Pertama tidak diaktifkan. Data yang ditampilkan menunjukkan bahwa RT rata-rata dalam 5 menit terakhir adalah 7,88 ms.

Setelah fitur Penyedia Zona Internal Pertama diaktifkan untuk semua instance aplikasi di zona berbeda, data yang ditampilkan di gambar berikut menunjukkan bahwa RT rata-rata berubah menjadi 6,85 ms.
