Bu konu, Alibaba Cloud üzerindeki Dubbo uygulamalarının Enterprise Distributed Application Service (EDAS) platformuna nasıl sorunsuz bir şekilde geçirileceğini ve hizmetlerin nasıl kaydedilip keşfedileceğini açıklar. Dubbo uygulamalarınız Alibaba Cloud üzerinde dağıtılmamışsa, EDAS'e geçiş için kapsamlı bir çözüm edinmek üzere destek talebi oluşturun veya EDAS teknik desteğiyle iletişime geçin.
EDAS'e geçişin faydaları
EDAS; başlatma parametrelerinin esnek yapılandırılması, süreç görselleştirme, zarif hizmet bağlantısı ve bağlantı kesme ile aşamalı sürüm dağıtımı gibi uygulama dağıtım özellikleri sunar. Bu sayede uygulama sürüm dağıtım süreçlerinizi yapılandırabilir, sorgulayabilir ve kontrol edebilirsiniz.
EDAS, hizmet keşfi ve yapılandırma yönetimi özelliklerini ticari sürümünde sağlar. Bu durum, Eureka, ZooKeeper veya Consul gibi ara katmanları sürdürme yükünü ortadan kaldırır.
EDAS konsolu merkezi hizmet yönetimini destekler. Bu özellik, yayımlanan ve tüketilen hizmetlerin ayrıntılarını görüntülemenize olanak tanır.
EDAS otomatik ölçeklendirme özelliği sunar. Bu sayede trafik yoğunluğundaki dalgalanmalara bağlı olarak uygulamalarınızı dinamik olarak içe veya dışa doğru ölçeklendirebilirsiniz.
EDAS, örnek bilgisi sorgulamanın yanı sıra mikro hizmet izleme sorgusu, sistem çağrı topolojisi sorgusu ve yavaş SQL sorgusu gibi gelişmiş izleme özellikleri de sağlar.
EDAS, uygulamalarınızın yüksek kullanılabilirliğini sağlamak amacıyla kısıtlama ve düşürme özellikleri sunar.
EDAS, uygulamalarınızı yineleyip güncellerken küçük ölçekli doğrulama yapmanıza olanak tanıyan uçtan uca aşamalı sürüm dağıtımı özelliği sağlar.
Sorunsuz geçiş
Dubbo uygulamalarınız üretim ortamında dağıtılmışsa ve beklendiği gibi çalışıyorsa, uygulamaları EDAS'e geçirerek tüm EDAS özelliklerinden yararlanmak için sorunsuz geçiş yapabilirsiniz. Sorunsuz geçiş, hizmet sürekliliğini garanti eder.
Dubbo uygulamalarınız üretim ortamında dağıtılmamışsa veya kesintiye neden olan bir geçiş kabul edilebilirse, yerel ortamınızda geliştirdikten sonra uygulamayı doğrudan EDAS'e dağıtabilirsiniz. Daha fazla bilgi için bkz. EDAS ile çalışma.
Geçişe genel bakış
Geçiş işlemi üç aşamadan oluşur:
Uygulamaları geçirin (zorunlu) -- Durumsuz uygulamalar tek tek geçirilir.
Server Load Balancer (SLB) örneğini geçirin veya DNS'i güncelleyin (isteğe bağlı) -- Trafiği yeni dağıtıma yönlendirin.
Depolama ve mesaj kuyruklarını geçirin (isteğe bağlı) -- Yalnızca uygulamalarınız ApsaraDB RDS ve Message Queue gibi Alibaba Cloud hizmetlerini henüz kullanmıyorsa gereklidir.
Bu kılavuz 1. aşamaya odaklanmaktadır.
Geçiş yöntemleri
Uygulamaları kayıt defteri değiştirme veya çift kayıt ve çift abonelik yöntemlerini kullanarak geçirebilirsiniz. Bu iki yöntem, hizmet kesintisi olmadan uygulamaların geçirilmesine olanak tanır.
-
Kayıt defteri değiştirme
Dubbo'yu kullanarak orijinal hizmet kayıt defterini EDAS Config Server'a geçirin, yeni bir uygulama kümesi geliştirin ve ardından bunları EDAS'e dağıtın. Ardından, Server Load Balancer (SLB) kullanarak ve etki alanı adlarını yapılandırarak trafiği değiştirin.
Kayıt defteri değiştirme yöntemini kullanırsanız bu konunun geri kalan içeriğini atlayabilirsiniz. Spring Boot kullanarak Dubbo mikro hizmet uygulamaları geliştirebilirsiniz. Daha fazla bilgi için bkz. Spring Boot kullanarak bir Dubbo mikro hizmet uygulaması geliştirme.
-
Çift kayıt ve çift abonelik
Uygulamalar geçirilirken hem orijinal hizmet kayıt defterine hem de EDAS hizmet kayıt defterine erişim sağlayarak, geçirilen uygulamalar ile geçirilmeyen uygulamalar arasında karşılıklı çağrı yapılmasını etkinleştirin.
Geçirilen uygulamalar ve geçirilmeyen uygulamalar birbirini keşfedebilir ve çağırabilir. Bu durum hizmet sürekliliğini garanti eder.
Çift kayıt ve çift aboneliği uygulamak için yalnızca bağımlılıkları eklemeniz ve bir satır kodu değiştirmeniz gerekir.
Tüketici hizmet çağrılarının ayrıntılarını görüntüleyebilir ve geçiş ilerlemesini gerçek zamanlı olarak takip edebilirsiniz.
Hizmet kaydı ve abonelik ilkelerini tekrar tekrar uygulamayı yeniden başlatmadan dinamik olarak değiştirebilirsiniz. Geçiş sürecinde uygulamaları yalnızca bir kez yeniden başlatmanız gerekir.
İlk uygulamayı geçirin
-
Geçirilecek ilk uygulamayı seçin.
Geçişi temel sağlayıcıdan başlatmanızı öneririz. İz karmaşık ve analiz edilmesi zorsa rastgele bir uygulama seçebilirsiniz. Seçilen uygulamayı sonraki adımları uygulayarak geçirin.
-
Uygulamaya bağımlılıklar ekleyin ve yapılandırmalarını değiştirin. Çift kayıt ve çift abonelik yöntemini kullanıyorsanız uygulama yapılandırmalarını değiştirmeniz gerekir.
Uygulama EDAS'e geçirilmeden önce uygulamaya bağımlılıklar ekleyin ve yapılandırmalarını değiştirin.
-
pom.xmldosyasınaedas-dubbo-migration-bombağımlılığını ekleyin.<dependency> <groupId>com.alibaba.edas</groupId> <artifactId>edas-dubbo-migration-bom</artifactId> <version>2.6.5.1</version> <type>pom</type> </dependency> -
Kayıt defteri adresini
application.propertiesdosyasına ekleyin.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:8848NotUygulama bir Spring Boot uygulaması değilse, uygulamayı dubbo.properties dosyasında veya Spring profilinde yapılandırın.
-
edas-migration://30.5.124.15:9999Kayıt defteri adresinin üst bilgisi. Uygulama birden çok hizmet kayıt defterine kaydedildiyse üst bilgiyi değiştirmeniz gerekmez. Günlük düzeyi WARN veya daha düşükse, Dubbo IP adresini ve bağlantı noktasını doğruladığı için başlatma sırasında bir WARN günlüğü oluşabilir. Bu günlük yoksayılabilir.
-
service-registryUygulamanın kaydedildiği hizmet kayıt defterinin adresi. Varsayılan olarak uygulama birden çok hizmet kayıt defterine kaydedilir. Bu nedenle birden çok kayıt defteri adresi yazılır. Her kayıt defteri adresi, standart bir Dubbo kayıt defteri adresi formatındadır. Birden çok kayıt defteri adresini virgülle (
,) ayırın. 172.31.20.219 ZooKeeper adresiyle işaretlenen örnek için gerçek ZooKeeper adresini ve bağlantı noktası numarasını girin. ` -
reference-registryHizmet aboneliği için kullanılan kayıt defteri adresi. Uygulamayı birden çok hizmet kayıt defterine veya önce orijinal hizmet kayıt defterine kaydedebilirsiniz. Her kayıt defteri adresi, standart bir Dubbo kayıt defteri adresi formatındadır. Birden çok kayıt defteri adresini virgülle (
,) ayırın. -
config-addressDinamik olarak gönderilen adres. Yerel ortamınızda dinamik gönderimi uygulamak için Nacos öğesini indirin. EDAS bu adresi dönüştürür.
-
-
Diğer değişiklikleri tamamlayın.
Spring uygulaması Spring Boot kullanılarak geliştirilmemişse tarama yoluna
com.alibaba.edas.dubbo.migration.controller.EdasDubboRegistryRestöğesini ekleyin.
-
-
Sonucu yerel ortamınızda doğrulayın.
Tek seferlik değişiklik için dinamik yapılandırmayı kullanın.
-
Hazırlıkları yapın.
-
Hizmetin kaydedilip kaydedilmediğini kontrol edin.
Hafif yapılandırma merkezinde oturum açın ve hizmeti hizmet sağlayıcı listesinde görüntüleyin.
Hizmet kaydı ve tüketimi hakkında bilgi görüntülemek için ZooKeeper'da oturum açın.
-
(İsteğe bağlı) Hizmet kayıt bilgilerini yapılandırmak için Nacos'ta oturum açın.
NotDinamik yapılandırma gerekli değilse bu adımı atlayın.
DataId: Bu parametreyi
dubbo.registry.configolarak ayarlayın.Group: Bu parametreyi applicationName içinde belirtilen Dubbo uygulama adına (örneğin, dubbo-migration-demo-server) ayarlayın. Hizmet kayıt bilgileri uygulama düzeyinde yapılandırıldığından uygulama adı benzersiz olmalıdır.
-
Configuration Content: Yapılandırma içeriği uygulama düzeyinde veya örnek IP adresi düzeyinde olabilir. Birden çok ağ arabirimi denetleyicisi (NIC) kullanılırsa örnek IP adresi düzeyinde bir hata oluşabilir.
-
Uygulama düzeyi
dubbo.reference.registry=edas://127.0.0.1:8080 ## The service registry with which the service is registered dubbo.service.registry=edas://127.0.0.1:8080,zookeeper:127.0.0.1:2181 ## The service registry for service subscription -
Örnek IP adresi düzeyi
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
Bir kümeyi doğrularken, örnek IP adresi düzeyindeki yapılandırmaların ve uygulama düzeyindeki yapılandırmaların sırayla etkili olup olmadığını kontrol edebilirsiniz.
-
-
Uygulama çağrısının normal olup olmadığını kontrol edin ve kayıt defterinin kayıt ve abonelik ilişkisini doğrulayın.
Spring Boot 1.x: http://ip:port/dubboRegistry
Spring Boot 2.x: http://ip:port/actuator/dubboRegistry
-
-
Değiştirilen uygulamayı EDAS'e dağıtın.
İş gereksinimlerinize bağlı olarak uygulamayı bir Elastic Compute Service (ECS) kümesine veya Container Service for Kubernetes (ACK) kümesine dağıtabilirsiniz. Uygulamayı dağıtmak için EDAS konsolunu veya ilgili aracı kullanabilirsiniz. Daha fazla bilgi için bkz. Uygulama Barındırma Genel Bakışı (K8s) ve Uygulama Barındırma Genel Bakışı (ECS).
-
Maliyet tasarrufu sağlamak için mevcut bir ECS örneğini EDAS'e aktararak yeniden kullanmanızı öneririz. Daha fazla bilgi için bkz. EDAS konsolunda bir ECS kümesi oluşturma.
ÖnemliECS örneğini aktarırken dönüştürme yapmanız istenirse işleminize devam etmeden önce önemli verileri yedekleyin.
Mevcut bir ECS örneğini yeniden kullanmazsanız mevcut sanal özel cloud (VPC) içinde bir ECS örneği ve küme gibi kaynaklar oluşturmanız gerekir. Bu işlem, geçiş öncesi ve sonrası uygulamalar arasındaki ağ bağlantısını sağlayarak uygulamaların geçirilmesine olanak tanır. Daha fazla bilgi için bkz. Genel Bakış.
Veritabanı, önbellek ve mesaj kuyruğu gibi ürünlerde yeni ECS örneği için bir IP adresi izin listesi yapılandırın. Bu işlem, ECS örneğinin bu üçüncü taraf bileşenlere beklendiği gibi erişebilmesini sağlar.
-
-
Sonucu doğrulayın.
Hizmetinizin beklendiği gibi çalışıp çalışmadığını kontrol edin.
-
Hizmet aboneliği izleme verilerini görüntüleyin.
Uygulama için Spring Boot Actuator etkinleştirildiyse her uygulama tarafından abone olunan hizmetin RibbonServerList bilgilerini görüntülemek üzere Actuator'a erişebilirsiniz. Aşağıdaki URL'leri kullanarak Actuator'a erişebilirsiniz:
Spring Boot 1.x: http://ip:port/dubboRegistry
Spring Boot 2.x: http://ip:port/actuator/dubboRegistry
dubbo.orig.**: uygulamada yapılandırılan hizmet kayıt defteri bilgileri.dubbo.effective.**: uygulamada etkili olan hizmet kayıt defteri bilgileri.
Diğer tüm uygulamaları geçirin
İlk uygulamayı geçirme yordamını tekrarlayarak diğer uygulamaları da EDAS'e geçirin.
Geçiş yapılandırmalarını silin
Geçiş tamamlandıktan sonra orijinal hizmet kayıt defteri yapılandırmalarını ve geçiş sırasında kullanılan edas-dubbo-migration-bom bağımlılığını silin.
ZooKeeper yapılandırmalarını silerek kayıt defteri adresini değiştirin. Bu işlem, tüketicilerin yalnızca EDAS'ten abone olmasını ve sağlayıcıların yalnızca EDAS'te abonelik sağlamasını garanti eder. Kayıt defteri adresini aşağıdaki yöntemleri kullanarak değiştirebilirsiniz:
-
Yöntem 1: Dinamik yapılandırma
Daha fazla bilgi için bkz. Sonucu yerel ortamınızda doğrulayın.
-
Yöntem 2: Manuel değiştirme
Tüm uygulamalar değiştirildikten sonra kayıt defteri adresini EDAS ConfigServer adresine değiştirin.
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:8848reference-registrydeğerinizookeeper://172.31.20.219:2181değerindenedas://127.0.0.1:8080değerine değiştirin. Ardından uygulamaları dağıtın.NotArtık
ZooKeepergerekmiyorsa geçişten sonra hizmet kayıt defteri yapılandırmalarındanzookeeper://172.31.20.219:2181girişini silin.dubbo.registry.address = edas://127.0.0.1:8080
Uzun vadede ZooKeeper hizmet kararlılığını etkilemez ancak Dubbo'da hizmet kayıt defterlerinin kullanımındaki karmaşıklığı ve hata oranını artırır. Geçişten sonra ZooKeeper yapılandırmalarını silmenizi ve uygulamaları yoğun saatler dışında toplu olarak yeniden başlatmanızı öneririz.