Spring Cloud uygulamalarının hizmet kaydı ve keşfi Eureka, Consul ve ZooKeeper gibi bileşenler kullanılarak sağlanmıştır. Bu konuda, hizmet kaydı ve keşfinin Nacos kullanılarak nasıl uygulanacağı ve Nacos'un Serverless App Engine'e (SAE) nasıl barındırılacağı açıklanmaktadır.
Avantajlar
Spring Cloud uygulamalarının hizmet kaydı ve keşfi Eureka, Consul, ZooKeeper ve Redis gibi bileşenler kullanılarak sağlanır. Spring Cloud uygulamalarını SAE üzerine barındırırsanız iş kodunu değiştirmeden yalnızca orijinal hizmet kayıt defterini ve yapılandırma merkezini Alibaba Nacos Discovery ile değiştirerek hizmet kaydı ve keşfi yapabilirsiniz.
SAE hizmet kayıt defteri, Spring Cloud Alibaba Nacos Discovery'nin tüm özelliklerini sunar ve Eureka, Consul, ZooKeeper ve Redis gibi birden çok bileşene olan bağımlılığınızı ortadan kaldırır.
Spring Cloud uygulamalarını SAE üzerine barındırdıktan sonra kayıt defteri ve yapılandırma merkezinin kurulması ve bakımıyla uğraşmadan Spring Cloud uygulamalarının mantığını oluşturmaya odaklanabilirsiniz. Auto Scaling, uygulamaların toplu halde hızlı başlatılması ve durdurulması ile uygulama izleme dahil olmak üzere SAE tarafından sunulan özellikler geliştirme ve işletim maliyetlerinizi önemli ölçüde azaltmanıza yardımcı olur.
Çok sayıda mikroservis uygulamanız varsa aşağıdaki türdeki hizmet kayıt defterlerinden birini öneri düzeyine göre azalan sırada kullanabilirsiniz:
Adım 1: Demo edinin
eureka-service-provider ve eureka-service-consumer SAE mikroservis demo uygulamalarının paketleridir. Tüketici ve sağlayıcıya Eureka entegre edilmiştir. Tüketici sağlayıcı tarafından sunulan hizmetleri tüketir.
Sağlayıcı: eureka-service-provider.zip
Tüketici: eureka-service-consumer.zip
Adım 2: Sağlayıcının hizmet kayıt defteri yapılandırmalarını değiştirme
Cloud-native sağlayıcıyı SAE üzerine barındırmak için sağlayıcıdaki POM bağımlılığını değiştirmeniz ve Nacos Server için bir IP adresi belirtmeniz gerekir.
Aşağıdaki senaryolarda Nacos Server için bir IP adresi belirtmeniz gerekir:
Uygulamalarınız yerel testlerden geçtikten sonra SAE üzerine barındırırsınız.
SAE hizmet kayıt defteri kendi yönettiğiniz bir Nacos kayıt defteridir.
-
pom.xml dosyasına aşağıdaki bağımlılığı ekleyin.
Sağlayıcının pom.xml dosyasını açın.
spring-cloud-starter-netflix-eureka-clientifadesinispring-cloud-starter-alibaba-nacos-discoveryile değiştirin ve Nacos Server sürümünü yapılandırın.Değişimden önce:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>Değişimden sonra:
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.1.1.RELEASE</version> </dependency>NotBu örnekte Spring Cloud Greenwich kullanılmaktadır.
spring-cloud-starter-alibaba-nacos-discoverysürümü2.1.1.RELEASEşeklindedir.Spring Cloud Finchley kullanıyorsanız
spring-cloud-starter-alibaba-nacos-discoverysürümü2.0.1.RELEASEşeklindedir.Spring Cloud Edgware kullanıyorsanız
spring-cloud-starter-alibaba-nacos-discoverysürümü1.5.1.RELEASEşeklindedir. Bu sürümün desteği sona ermiştir. Bu sürümü önermiyoruz. Daha fazla bilgi için bkz. Spring Cloud Edgware Sürüm Notları.
-
Nacos Server için bir IP adresi belirtin.
src\main\resources içindeki application.properties dosyasını açın ve Nacos Server için bir IP adresi belirtin.
Değişiklikten önce:
spring.application.name=service-provider server.port=18081 eureka.client.serviceUrl.defaultZone=http://127.0.0.1:8761/eureka/Değişiklikten sonra:
spring.application.name=service-provider server.port=18081 spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848127.0.0.1Nacos Server'ın IP adresidir. Nacos Server başka bir fiziksel sunucuda dağıtılmışsa IP adresini buna göre değiştirin. Diğer gereksinimleriniz varsa Yapılandırma öğeleri bölümüne başvurarakapplication.propertiesdosyasına gerekli yapılandırmaları ekleyin. -
Uygulama hizmetini sorgulayın.
Sağlayıcıyı başlatmak için
nacos-service-providerprojesindekiProviderApplicationsınıfınınmainişlevini çalıştırın.-
Bilgisayarınıza kurulu olan Nacos Server konsoluna
127.0.0.1:8848/nacosadresini ziyaret ederek oturum açın. Sol gezinme bölmesinde seçeneklerini seçin.NotNacos Server konsoluna oturum açmak için varsayılan kullanıcı adı ve şifre nacos'tur.
Service list içinde service-provider görüntüleniyorsa ve service-provider ayrıntılarını sorgulayabiliyorsanız service-provider başarıyla kaydedilmiş demektir.
Adım 3: Tüketicinin hizmet kayıt defteri yapılandırmalarını değiştirme
Cloud-native tüketiciyi SAE üzerine barındırmak için tüketicideki POM bağımlılığını değiştirmeniz ve Nacos Server için bir IP adresi belirtmeniz gerekir.
Aşağıdaki senaryolarda Nacos Server için bir IP adresi belirtmeniz gerekir:
Uygulamalarınız yerel testlerden geçtikten sonra SAE üzerine barındırırsınız.
SAE hizmet kayıt defteri kendi yönettiğiniz bir Nacos kayıt defteridir.
-
pom.xml dosyasına aşağıdaki bağımlılığı ekleyin.
Sağlayıcının pom.xml dosyasını açın.
spring-cloud-starter-netflix-eureka-clientifadesinispring-cloud-starter-alibaba-nacos-discoveryile değiştirin ve Nacos Server sürümünü yapılandırın.Değişimden önce:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>Değişimden sonra:
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.1.1.RELEASE</version> </dependency>NotBu örnekte Spring Cloud Greenwich kullanılmaktadır.
spring-cloud-starter-alibaba-nacos-discoverysürümü2.1.1.RELEASEşeklindedir.Spring Cloud Finchley kullanıyorsanız
spring-cloud-starter-alibaba-nacos-discoverysürümü2.0.1.RELEASEşeklindedir.Spring Cloud Edgware kullanıyorsanız
spring-cloud-starter-alibaba-nacos-discoverysürümü1.5.1.RELEASEşeklindedir. Bu sürümün desteği sona ermiştir. Bu sürümü önermiyoruz. Daha fazla bilgi için bkz. Spring Cloud Edgware Sürüm Notları.
-
Nacos Server için bir IP adresi belirtin.
src\main\resources içindeki application.properties dosyasını açın ve Nacos Server için bir IP adresi belirtin.
Değişiklikten önce:
spring.application.name=service-consumer server.port=18082 eureka.client.serviceUrl.defaultZone=http://127.0.0.1:8761/eureka/Değişiklikten sonra:
spring.application.name=service-consumer server.port=18082 spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848127.0.0.1Nacos Server'ın IP adresidir. Nacos Server başka bir fiziksel sunucuda dağıtılmışsa IP adresini buna göre değiştirin. Diğer gereksinimleriniz varsa Yapılandırma öğeleri bölümüne başvurarakapplication.propertiesdosyasına gerekli yapılandırmaları ekleyin. -
Uygulama hizmetini sorgulayın.
Tüketiciyi başlatmak için
nacos-service-consumerprojesindekiConsumerApplicationsınıfınınmainişlevini çalıştırın.-
Bilgisayarınıza kurulu olan Nacos Server konsoluna
127.0.0.1:8848/nacosadresini ziyaret ederek oturum açın. Sol gezinme bölmesinde seçeneklerini seçin.NotNacos Server konsoluna oturum açmak için varsayılan kullanıcı adı ve şifre nacos'tur.
Service list içinde service-consumer görüntüleniyorsa ve service-consumer ayrıntılarını sorgulayabiliyorsanız service-consumer başarıyla kaydedilmiş demektir.
Adım 4: Tüketicinin sağlayıcı hizmetlerini tüketme sonuçlarını görüntüleme
Bilgisayarınızda tüketicinin sağlayıcı tarafından sunulan hizmetleri tüketme sonuçlarını görüntüleyin. Hizmeti başlatın ve sonuçları görüntülemek için IP+port/echo-rest/<Custom variable> veya IP+port/echo-feign/<Custom variable> adresine erişin.
Linux, UNIX veya macOS için
curl http://127.0.0.1:18082/echo-rest/<Custom variable>veyacurl http://127.0.0.1:18082/echo-feign/<Custom variable>komutunu çalıştırın.Windows için tarayıcıya
http://127.0.0.1:18082/echo-rest/<Custom variable>veyahttp://127.0.0.1:18082/echo-feign/<Custom variable>adresini girin.
Aşağıda Windows işletim sisteminde başarılı hizmet tüketimine bir örnek verilmiştir.
Adım 5: Uygulamaları SAE'ye dağıtma
Bu bölümde yerel programın yürütülebilir bir JAR paketine nasıl derleneceği örneklerle açıklanmaktadır. Dağıtımdan önce uygulama için bir görüntü de oluşturabilirsiniz.
-
Uygulamanın pom.xml dosyasına aşağıdaki yapılandırmayı ekleyin ve ardından yerel programı yürütülebilir bir JAR paketine derlemek için mvn clean package komutunu çalıştırın.
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build> -
Derlenmiş sağlayıcı ve tüketici uygulama paketlerini SAE üzerine dağıtın. Daha fazla bilgi için bkz. JAR paketi kullanarak Java uygulamalarını dağıtma.
ÖnemliSAE boş bir uygulama oluşturmanıza izin vermez. Konsolda bir uygulama oluşturmalı ardından uygulamaya veri aktarabilirsiniz.
Uygulamaları bir JAR paketi kullanarak dağıtıyorsanız Application Runtime Environment ayarını Standard Java Application Runtime Environment olarak belirleyin.
Uygulamaları bir WAR paketi kullanarak dağıtıyorsanız Application Runtime Environment ayarını apache-tomcat-XXX olarak belirleyin.
Uygulamaları SAE üzerine dağıttığınızda SAE hizmet kayıt defteri Nacos Server IP adresini hizmet bağlantı noktasını ad alanını AccessKey ID'sini ve AccessKey secret anahtarını yüksek öncelikli olarak otomatik ayarlar. İhtiyaçlarınıza göre varsayılan yapılandırmaları koruyabilir veya silebilirsiniz.
Adım 6: Sonucu doğrulama
Tüketiciye Internet üzerinden erişilebilen bir CLB örneği bağlayın ve tarayıcıda CLB örneği için belirttiğiniz genel uç noktayı girerek tüketicinin ana sayfasına gidin. Daha fazla bilgi için bkz. CLB örneğini uygulamaya bağlama ve uygulama için genel veya özel IP adresi oluşturma.
Tüketicinin ana sayfasında sağlayıcıdan hizmet çağırmak için bir istek oluşturun. SAE konsoluna oturum açın. Sol gezinme bölmesinde Applications > Applications. seçeneklerini seçin. Üst gezinme çubuğunda bir bölge seçin.
Applications sayfasında bir tüketici seçin ve Basic Information sayfasına gidin.
-
Sol gezinme bölmesinde seçeneklerini seçerek genel hizmet çağrı verilerini görüntüleyin.
Genel Bakış sayfasında sağlayıcıdan hizmet çağırmaya yönelik isteğin verileri görüntüleniyorsa hizmetler başarıyla çağrılmış demektir.
Yapılandırma öğeleri
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Spring Cloud Alibaba Nacos Discovery hakkında daha fazla bilgi için bkz. Spring Cloud Alibaba Nacos Discovery.
Sonraki adımlar
Oluşturulan uygulama üzerinde aşağıdaki işlemleri gerçekleştirebilirsiniz.
Uygulama Internet'e erişemez veya Internet üzerinden kendisine erişilemez. Uygulama için ağ yapılandırmak istiyorsanız bkz. Uygulama erişimi.
Daha fazla bilgi için bkz. İşletim ve bakım yönetimi.



