Tüm Ürünler
Search
Belge Merkezi

Serverless App Engine:Modify service registration and discovery of applications to Nacos

Son Güncelleme:Oct 09, 2026

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:

  • Ticari hizmet kayıt defteri (MSE)

    ZF182Dl2pw

    Bir MSE Nacos kayıt defterinin nasıl oluşturulup dağıtılacağı hakkında bilgi için bkz. MSE Nacos hizmet kayıt defteri kullanma.

  • Kendi yönettiğiniz hizmet kayıt defteri

    7D79jXUfBL

    Kendi yönettiğiniz bir Nacos kayıt defteri oluştururken ve dağıtırken aşağıdaki hususlara dikkat edin:

    • SAE ağının ve kendi yönettiğiniz Nacos kayıt defteri ağının birbirine bağlı olduğundan emin olun.

    • Komutun geçersiz hale gelmemesi için -D ve -XX parametrelerini aynı anda kullanmadığınızdan emin olun. Örnek kod:

      • Orijinal kod:

        java -Dalicloud.deployment.mode=EDAS_MANAGED -XX:+UseContainerSupport -XX:InitialRAMPercentage=70.0 -XX:MaxRAMPercentage=70.0 -XX:+UnlockExperimentalVMOptions -XX:+UseWisp2 -Dio.netty.transport.noNative=true -XX:+UseG1GC -Dspring.profiles.active=yace -Dnacos.use.endpoint.parsing.rule=false -Dnacos.use.cloud.namespace.parsing=false -jar /home/admin/app/xx-server.jar
      • Değiştirilmiş kod:

        java -XX:+UseContainerSupport -XX:InitialRAMPercentage=70.0 -XX:MaxRAMPercentage=70.0 -XX:+UnlockExperimentalVMOptions -XX:+UseWisp2 -Dio.netty.transport.noNative=true -XX:+UseG1GC -Dspring.profiles.active=yace -Dnacos.use.endpoint.parsing.rule=false -Dnacos.use.cloud.namespace.parsing=false -jar /home/admin/app/xx-server.jar
    • Kendi yönettiğiniz bir hizmet kayıt defteri kullanıyorsanız uygulamayı bir görüntü veya JAR paketi kullanarak dağıtmanızı ve aşağıdaki başlatma parametrelerini yapılandırmanızı öneririz: -Dnacos.use.endpoint.parsing.rule=false ve -Dnacos.use.cloud.namespace.parsing=false.

      Önemli

      SAE yerleşik olmayan bir kayıt defteri kullanmak için gerekli başlatma parametrelerini -jar öncesine eklemeniz gerekir.

      • Uygulamayı bir görüntü kullanarak dağıtıyorsanız -Dnacos.use.endpoint.parsing.rule=false ve -Dnacos.use.cloud.namespace.parsing=false ifadelerini görüntü dosyasının başlatma komutuna ekleyin. Docker görüntüsünün nasıl oluşturulacağı hakkında bilgi için bkz. Görüntü oluşturma örneği.

        Örnek kod aşağıdaki gibidir:

        RUN echo 'eval exec java -Dnacos.use.endpoint.parsing.rule=false -Dnacos.use.cloud.namespace.parsing=false -jar $CATALINA_OPTS /home/admin/app/hello-edas-0.0.1-SNAPSHOT.jar'> /home/admin/start.sh && chmod +x /home/admin/start.sh
      • Uygulamayı bir JAR paketi kullanarak dağıtıyorsanız SAE konsolunda Startup Command Settings bölümüne gidin. Ardından options Settings alanına -Dnacos.use.endpoint.parsing.rule=false -Dnacos.use.cloud.namespace.parsing=false girin. Aşağıdaki şekilde Open JDK 8 çalışma zamanı ortamında bir Java uygulamasını dağıtmak için yapılandırılan başlatma komutu gösterilmektedir. Daha fazla bilgi için bkz. Başlatma komutu yapılandırma.sc_configure_a_startup_command_for_nacos

  • SAE yerleşik hizmet kayıt defteri

    x6JeUmPTQf

    SAE Java mikroservis uygulamaları için Nacos Server'ın otomatik adres çözme yeteneklerini sağlar. Bir hizmet kayıt defteri yapılandırmak için SAE özelliğini service registration and discovery kullanabilirsiniz. Daha fazla bilgi için bkz. SAE yerleşik Nacos kayıt defterini kullanma.

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.

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.

Not

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.

  1. 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-client ifadesini spring-cloud-starter-alibaba-nacos-discovery ile 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>                           
    Not
    • Bu örnekte Spring Cloud Greenwich kullanılmaktadır. spring-cloud-starter-alibaba-nacos-discovery sürümü 2.1.1.RELEASE şeklindedir.

    • Spring Cloud Finchley kullanıyorsanız spring-cloud-starter-alibaba-nacos-discovery sürümü 2.0.1.RELEASE şeklindedir.

    • Spring Cloud Edgware kullanıyorsanız spring-cloud-starter-alibaba-nacos-discovery sü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ı.

  2. 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:8848                            

    127.0.0.1 Nacos 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şvurarak application.properties dosyasına gerekli yapılandırmaları ekleyin.

  3. Uygulama hizmetini sorgulayın.

    1. Sağlayıcıyı başlatmak için nacos-service-provider projesindeki ProviderApplication sınıfının main işlevini çalıştırın.

    2. Bilgisayarınıza kurulu olan Nacos Server konsoluna 127.0.0.1:8848/nacos adresini ziyaret ederek oturum açın. Sol gezinme bölmesinde Service management > Service list seçeneklerini seçin.

      Not

      Nacos 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.

Not

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.

  1. 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-client ifadesini spring-cloud-starter-alibaba-nacos-discovery ile 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>                           
    Not
    • Bu örnekte Spring Cloud Greenwich kullanılmaktadır. spring-cloud-starter-alibaba-nacos-discovery sürümü 2.1.1.RELEASE şeklindedir.

    • Spring Cloud Finchley kullanıyorsanız spring-cloud-starter-alibaba-nacos-discovery sürümü 2.0.1.RELEASE şeklindedir.

    • Spring Cloud Edgware kullanıyorsanız spring-cloud-starter-alibaba-nacos-discovery sü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ı.

  2. 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:8848                            

    127.0.0.1 Nacos 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şvurarak application.properties dosyasına gerekli yapılandırmaları ekleyin.

  3. Uygulama hizmetini sorgulayın.

    1. Tüketiciyi başlatmak için nacos-service-consumer projesindeki ConsumerApplication sınıfının main işlevini çalıştırın.

    2. Bilgisayarınıza kurulu olan Nacos Server konsoluna 127.0.0.1:8848/nacos adresini ziyaret ederek oturum açın. Sol gezinme bölmesinde Service management > Service list seçeneklerini seçin.

      Not

      Nacos 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> veya curl 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> veya http://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.

  1. 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>                        
  2. 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.

    Önemli
    • SAE 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

  1. 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.

  2. 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.

  3. Applications sayfasında bir tüketici seçin ve Basic Information sayfasına gidin.

  4. Sol gezinme bölmesinde Application Monitoring > Application Overview 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


Yapılandırma öğesi


Anahtar


Varsayılan değer


Açıklama


Sunucu IP adresi


spring.cloud.nacos.discovery.server-addr


Yok


Nacos Server'ın dinlediği IP adresi ve bağlantı noktası.


Hizmet adı


spring.cloud.nacos.discovery.service


${spring.application.name}


Hizmetin adı.


Ağ arayüzü denetleyicisi (NIC) adı


spring.cloud.nacos.discovery.network-interface


Yok


IP adresi belirtilmemişse NIC'in IP adresi kaydedilir. Bu öğe yapılandırılmazsa varsayılan olarak ilk NIC'in IP adresi kullanılır.


Kaydedilen IP adresi


spring.cloud.nacos.discovery.ip


Yok


Kaydedilen IP adresi yapılandırma sırasında ENI adına göre daha yüksek önceliğe sahiptir.


Kaydedilen bağlantı noktası


spring.cloud.nacos.discovery.port


-1


Kaydedilen bağlantı noktasını yapılandırmanız gerekmez. Sistem bağlantı noktasını otomatik algılar.


Ad alanı


spring.cloud.nacos.discovery.namespace


Yok


Farklı ortamlardaki kaydın yalıtımı. Örneğin geliştirme test ve üretim ortamlarındaki yapılandırmalar ve hizmetler dahil kaynakların yalıtımı.


Meta veri


spring.cloud.nacos.discovery.metadata


Yok


Bu meta veriler JSON Map biçiminde yapılandırılmalıdır. İş gereksinimlerinize göre hizmetle ilgili meta verileri belirtebilirsiniz.


Küme


spring.cloud.nacos.discovery.cluster-name


DEFAULT


Nacos kümesinin adı.


Uç nokta


spring.cloud.nacos.discovery.endpoint


Yok


Bölgedeki bir hizmetin etki alanı adı. Bu etki alanı adına dayanarak sunucu IP adresini dinamik alabilirsiniz. Bir uygulamayı SAE üzerine dağıtırken bu öğeyi belirtmeniz gerekmez.


Ribbon entegrasyonunun etkinleştirilip etkinleştirilmeyeceği


ribbon.nacos.enabled


true


Ribbon entegrasyonunu yalnızca ihtiyaç duyduğunuzda devre dışı bırakın.

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.