Topik ini menjelaskan cara memigrasikan aplikasi Dubbo di Alibaba Cloud ke Enterprise Distributed Application Service (EDAS) dan mendaftarkan serta menemukan layanan. Jika aplikasi Dubbo Anda tidak diterapkan di Alibaba Cloud, ajukan tiket atau hubungi dukungan teknis EDAS untuk mendapatkan solusi lengkap migrasi ke EDAS.
Manfaat migrasi ke EDAS
EDAS menyediakan fitur penyebaran aplikasi seperti konfigurasi fleksibel parameter startup, visualisasi proses, koneksi dan pemutusan layanan yang mulus, serta rilis bertahap. Fitur ini memungkinkan Anda mengonfigurasi, menanyakan, dan mengontrol proses rilis aplikasi.
EDAS menyediakan fitur penemuan layanan dan manajemen konfigurasi dalam rilis komersialnya, menghemat Anda dari pemeliharaan middleware seperti Eureka, ZooKeeper, atau Consul.
Konsol EDAS mendukung tata kelola layanan terpusat, memungkinkan Anda menanyakan detail layanan yang dirilis dan dikonsumsi.
EDAS menyediakan penskalaan otomatis, memungkinkan Anda secara dinamis menaikkan atau menurunkan skala aplikasi berdasarkan puncak dan lembah lalu lintas.
Selain kueri informasi instance, EDAS juga menyediakan fitur pemantauan tingkat lanjut seperti kueri jejak layanan mikro, kueri topologi panggilan sistem, dan kueri SQL lambat.
EDAS menyediakan fitur pembatasan laju dan degradasi untuk memastikan ketersediaan tinggi aplikasi Anda.
EDAS menyediakan fitur rilis bertahap ujung ke ujung untuk validasi skala kecil saat Anda melakukan iterasi dan pembaruan aplikasi.
Migrasi lancar
Jika aplikasi Dubbo Anda diterapkan di lingkungan produksi dan berjalan sesuai harapan, Anda dapat melakukan migrasi lancar untuk memindahkan aplikasi ke EDAS dan menggunakan semua fitur EDAS. Migrasi lancar memastikan kontinuitas layanan.
Jika aplikasi Dubbo Anda tidak diterapkan di lingkungan produksi atau downtime selama migrasi dapat diterima, Anda dapat langsung menerapkan aplikasi ke EDAS setelah mengembangkannya di lingkungan lokal Anda. Untuk informasi lebih lanjut, lihat Memulai dengan EDAS.
Proses migrasi
Wajib. Migrasikan aplikasi.
Aplikasi yang akan dimigrasikan biasanya tanpa status dan dapat dimigrasikan pertama kali. Topik ini berfokus pada cara memigrasikan aplikasi.
Opsional. Migrasikan Instance Server Load Balancer (SLB) atau modifikasi konfigurasi nama domain.
Setelah migrasi aplikasi selesai, Anda perlu memigrasikan instance SLB atau memodifikasi konfigurasi nama domain.
SLB
Jika instance SLB digunakan sebelum migrasi, Anda dapat menggunakan kembali instance SLB setelah migrasi.Ikhtisar.
Jika tidak ada instance SLB yang digunakan sebelum migrasi, kami sarankan Anda membuat dan mengikat instance SLB ke aplikasi entri, seperti API Gateway pada gambar sebelumnya, setelah migrasi.
Nama domain
Konfigurasi nama domain dapat dipertahankan jika instance SLB dapat digunakan kembali setelah migrasi.
Untuk membuat dan mengikat instance SLB ke aplikasi yang dimigrasikan, Anda harus menambahkan konfigurasi instance SLB ini ke konfigurasi nama domain dan menghapus instance SLB asli. Untuk informasi lebih lanjut, lihat Ubah server DNS untuk nama domain.
Opsional: Opsional. Migrasikan penyimpanan dan antrian pesan.
Aplikasi yang diterapkan di Alibaba Cloud menggunakan layanan Alibaba Cloud, seperti ApsaraDB RDS dan Antrian Pesan. Oleh karena itu, Anda tidak perlu memigrasikan penyimpanan dan antrian pesan bersama dengan aplikasi.
Jika aplikasi Anda tidak diterapkan di Alibaba Cloud, ajukan tiket atau hubungi dukungan teknis EDAS untuk mendapatkan solusi lengkap migrasi ke EDAS.
Topik ini menjelaskan cara memigrasikan aplikasi. EDAS menyediakan demo untuk menunjukkan cara memigrasikan aplikasi dengan lancar. Anda dapat mengunduh demo ini dan menjalankannya dengan merujuk pada Readme.
Metode migrasi
Anda dapat memigrasikan aplikasi dengan menggunakan pergantian registri atau pendaftaran ganda dan langganan ganda. Kedua metode tersebut memungkinkan Anda memigrasikan aplikasi tanpa waktu henti layanan.
Pergantian Registri
Gunakan Dubbo untuk beralih dari registri layanan asli ke EDAS Config Server, kembangkan satu set aplikasi baru, lalu terapkan ke EDAS. Kemudian, gunakan Server Load Balancer (SLB) dan konfigurasikan nama domain untuk beralih lalu lintas.
Jika Anda menggunakan metode pergantian registri, Anda dapat melewati sisa konten topik ini. Anda dapat menggunakan Spring Boot untuk mengembangkan aplikasi mikro layanan Dubbo. Untuk informasi lebih lanjut, lihat Gunakan Spring Boot untuk mengembangkan aplikasi mikro layanan Dubbo.
Pendaftaran Ganda dan Langganan Ganda
Akses registri layanan asli dan registri layanan EDAS saat aplikasi sedang dimigrasikan untuk mengaktifkan pemanggilan timbal balik antara aplikasi yang dimigrasikan dan yang belum dimigrasikan.
Aplikasi yang dimigrasikan dan yang belum dimigrasikan dapat menemukan dan memanggil satu sama lain, memastikan kontinuitas layanan.
Anda hanya perlu menambahkan dependensi dan memodifikasi satu baris kode untuk mengimplementasikan pendaftaran ganda dan langganan ganda.
Anda dapat melihat detail pemanggilan layanan konsumen dan melihat kemajuan migrasi secara real-time.
Anda dapat secara dinamis memodifikasi kebijakan pendaftaran dan langganan layanan tanpa perlu memulai ulang aplikasi berulang kali. Anda hanya perlu memulai ulang aplikasi sekali selama proses migrasi.
Migrasikan aplikasi pertama
Pilih aplikasi pertama untuk dimigrasikan.
Kami sarankan Anda memulai migrasi dari penyedia dasar. Anda dapat secara acak memilih aplikasi untuk dimigrasikan jika jejaknya kompleks dan sulit dianalisis. Migrasikan aplikasi yang dipilih dengan melakukan langkah-langkah berikutnya.
Tambahkan dependensi ke aplikasi dan modifikasi konfigurasinya. Anda harus memodifikasi konfigurasi aplikasi jika Anda menggunakan metode pendaftaran ganda dan langganan ganda.
Tambahkan dependensi ke aplikasi dan modifikasi konfigurasinya sebelum aplikasi dimigrasikan ke EDAS.
Tambahkan dependensi
edas-dubbo-migration-bomke filepom.xml.<dependency> <groupId>com.alibaba.edas</groupId> <artifactId>edas-dubbo-migration-bom</artifactId> <version>2.6.5.1</version> <type>pom</type> </dependency>Tambahkan alamat registri ke
application.properties.dubbo.registry.address = edas-migration://30.5.124.15:9999?service-registry=edas://127.0.0.1:8080,zookeeper://172.31.20.219:2181&reference-registry=zookeeper://172.31.20.219:2181&config-address=127.0.0.1:8848CatatanJika aplikasi bukan aplikasi Spring Boot, konfigurasikan aplikasi di dubbo.properties atau di profil Spring.
edas-migration://30.5.124.15:9999Header alamat registri. Anda tidak perlu memodifikasi header jika aplikasi didaftarkan dengan beberapa registri layanan. Jika tingkat log adalah WARN atau lebih rendah, log WARN mungkin dilemparkan selama startup karena Dubbo memverifikasi alamat IP dan port. Log tersebut dapat diabaikan.
service-registryAlamat registri layanan tempat aplikasi didaftarkan. Secara default, aplikasi didaftarkan dengan beberapa registri layanan. Oleh karena itu, beberapa alamat registri ditulis. Setiap alamat registri berada dalam format standar alamat registri Dubbo. Pisahkan beberapa alamat registri dengan koma (
,). Masukkan alamat dan nomor port ZooKeeper aktual untuk instance yang ditandai menggunakan alamat ZooKeeper 172.31.20.219. `reference-registryAlamat registri untuk langganan layanan. Anda dapat mendaftarkan aplikasi dengan beberapa registri layanan atau dengan registri layanan asli terlebih dahulu. Setiap alamat registri berada dalam format standar alamat registri Dubbo. Pisahkan beberapa alamat registri dengan koma (
,).config-addressAlamat yang didorong secara dinamis. Untuk mengimplementasikan dorongan dinamis di lingkungan lokal Anda, unduh Nacos. EDAS mengonversi alamat ini.
Selesaikan modifikasi lainnya.
Jika aplikasi Spring tidak dikembangkan di Spring Boot, tambahkan
com.alibaba.edas.dubbo.migration.controller.EdasDubboRegistryRestke jalur pemindaian.
Verifikasi hasil di lingkungan lokal Anda.
Gunakan konfigurasi dinamis untuk modifikasi satu kali.
Lakukan persiapan.
Periksa apakah layanan telah didaftarkan.
Masuk ke pusat konfigurasi ringan untuk melihat layanan dalam daftar penyedia layanan.
Masuk ke ZooKeeper untuk melihat informasi tentang pendaftaran dan konsumsi layanan.
(Opsional) Masuk ke Nacos untuk mengonfigurasi informasi pendaftaran layanan.
CatatanLewati langkah ini jika konfigurasi dinamis tidak diperlukan.
DataId: Atur parameter ini ke
dubbo.registry.config.Group: Atur parameter ini ke nama aplikasi Dubbo yang ditentukan di applicationName, seperti dubbo-migration-demo-server. Nama aplikasi harus unik karena informasi pendaftaran layanan dikonfigurasi di tingkat aplikasi.
Configuration Content: Konten konfigurasi dapat berada di tingkat aplikasi atau tingkat alamat IP instance. Jika beberapa pengontrol antarmuka jaringan (NIC) digunakan, kesalahan mungkin terjadi di tingkat alamat IP instance.
Tingkat aplikasi
dubbo.reference.registry=edas://127.0.0.1:8080 ## Registri layanan tempat layanan didaftarkan dubbo.service.registry=edas://127.0.0.1:8080,zookeeper:127.0.0.1:2181 ## Registri layanan untuk langganan layananTingkat alamat IP instance
169.254.15.86.dubbo.reference.registry=edas://127.0.0.1:8080,zookeeper:127.0.0.1:2181 169.254.15.86.dubbo.service.registry=edas://127.0.0.1:8080
Saat Anda memvalidasi kluster, Anda dapat memeriksa apakah konfigurasi di tingkat alamat IP instance dan di tingkat aplikasi berlaku secara berurutan.
Periksa apakah pemanggilan aplikasi normal dan periksa hubungan pendaftaran dan langganan registri.
Spring Boot 1.x: http://ip:port/dubboRegistry
Spring Boot 2.x: http://ip:port/actuator/dubboRegistry
Terapkan aplikasi yang dimodifikasi ke EDAS.
Anda dapat menerapkan aplikasi ke kluster Elastic Compute Service (ECS) atau kluster Container Service for Kubernetes (ACK) berdasarkan kebutuhan bisnis Anda. Anda dapat menggunakan konsol EDAS atau alat terkait untuk menerapkan aplikasi. Untuk informasi lebih lanjut, lihat Ikhtisar Penyimpanan Aplikasi (K8s) dan Ikhtisar Penyimpanan Aplikasi (ECS).
Kami sarankan Anda menggunakan kembali instance ECS yang ada dengan mengimpor instance tersebut ke EDAS. Ini menghemat biaya. Untuk informasi lebih lanjut, lihat Buat kluster ECS di konsol EDAS.
PentingJika Anda diminta untuk melakukan konversi saat mengimpor instance ECS, cadangkan data penting sebelum melanjutkan operasi Anda.
Jika Anda tidak menggunakan kembali instance ECS yang ada, Anda harus membuat sumber daya seperti instance ECS dan kluster di virtual private cloud (VPC) yang ada. Ini memastikan jaringan antara aplikasi sebelum dan sesudah migrasi tetap terhubung sehingga aplikasi dapat dimigrasikan. Untuk informasi lebih lanjut, lihat Ikhtisar.
Konfigurasikan daftar putih alamat IP untuk instance ECS baru di produk seperti database, cache, dan antrian pesan. Ini memastikan bahwa instance ECS dapat mengakses komponen pihak ketiga tersebut sesuai harapan.
Verifikasi hasilnya.
Periksa apakah layanan Anda berjalan sesuai harapan.
Lihat data pemantauan langganan layanan.
Jika Spring Boot Actuator diaktifkan untuk aplikasi, Anda dapat mengakses Actuator untuk melihat informasi tentang RibbonServerList setiap layanan yang dilanggan aplikasi. Anda dapat mengakses Actuator menggunakan URL berikut:
Spring Boot 1.x: http://ip:port/dubboRegistry
Spring Boot 2.x: http://ip:port/actuator/dubboRegistry
dubbo.orig.**: Informasi registri layanan yang dikonfigurasikan di aplikasi.dubbo.effective.**: Informasi registri layanan yang berlaku di aplikasi.
Migrasikan semua aplikasi lainnya
Migrasikan aplikasi lainnya ke EDAS dengan mengulangi prosedur untuk memigrasikan aplikasi pertama.
Hapus konfigurasi migrasi
Setelah migrasi selesai, hapus konfigurasi registri layanan asli dan dependensi edas-dubbo-migration-bom yang digunakan selama migrasi.
Modifikasi alamat registri dengan menghapus konfigurasi ZooKeeper. Ini memastikan bahwa konsumen hanya berlangganan dari EDAS dan penyedia hanya menyediakan langganan di EDAS. Anda dapat memodifikasi alamat registri menggunakan metode berikut:
Metode 1: Konfigurasi Dinamis
Untuk informasi lebih lanjut, lihat Verifikasi Hasil di Lingkungan Lokal Anda.
Metode 2: Modifikasi Manual
Ubah alamat registri ke alamat EDAS ConfigServer setelah semua aplikasi dimodifikasi.
dubbo.registry.address = edas-migration://30.5.XXX.XXX:9999?service-registry=edas://127.0.0.1:8080,zookeeper://172.31.20.219:2181&reference-registry=edas://127.0.0.1:8080&config-address=127.0.0.1:8848Ubah nilai
reference-registrydarizookeeper://172.31.20.219:2181menjadiedas://127.0.0.1:8080. Lalu, terapkan aplikasi.CatatanJika Anda tidak lagi memerlukan
ZooKeeper, hapuszookeeper://172.31.20.219:2181dari konfigurasi registri layanan setelah migrasi.dubbo.registry.address = edas://127.0.0.1:8080
Dalam jangka panjang, ZooKeeper tidak memiliki dampak pada stabilitas layanan, tetapi meningkatkan kompleksitas dan tingkat kesalahan penggunaan registri layanan di Dubbo. Kami sarankan Anda menghapus konfigurasi ZooKeeper setelah migrasi dan memulai ulang aplikasi secara bertahap selama jam-jam sepi.