Tüm Ürünler
Search
Belge Merkezi

Serverless App Engine:Dubbo uygulamalarını SAE üzerinde barındırın

Son Güncelleme:Oct 06, 2026

Bu konuda, XML yapılandırması kullanarak yerel ortamda örnek bir Dubbo mikro hizmet uygulaması oluşturma ve bunu Serverless App Engine (SAE) üzerine dağıtma adımları anlatılmaktadır. Uygulama, hizmet sağlayıcı ve hizmet tüketicisinden oluşur; her ikisi de hizmet kayıt defteri olarak Nacos kullanır. Dağıtımdan sonra SAE, yerel Nacos kayıt defteri adresini otomatik olarak değiştirir; herhangi bir yapılandırma değişikliği yapmanıza gerek kalmaz.

Ön koşullar

Başlamadan önce şunlara sahip olduğunuzdan emin olun:

  • Ortam değişkenlerinizde kurulu ve yapılandırılmış Maven

  • Tek düğüm modunda çalışan yerel bir Nacos Server (aşağıdaki adımlara bakın)

Nacos Server Kurulumu

  1. Nacos Server paketini indirin ve sıkıştırmasını açın.

  2. nacos/bin dizinine gidin ve Nacos Server'ı başlatın:

    • Linux, Unix veya macOS: ``bash sudo sh startup.sh -m standalone ``

    • Windows: ``bash startup.cmd -m standalone ``

standalone , Nacos'u küme modu yerine tek düğüm modunda başlatır. Windows'ta startup.cmd dosyasına çift tıklamak başarısız olursa dosyayı açın ve MODE="standalone" değerini manuel olarak ayarlayın. Ayrıntılar için Nacos Hızlı Başlangıç Kılavuzu konusuna bakın.

Sürüm notu: Dubbo 2.7.x ve Dubbo 3.0.x Mart 2023'te yaşam döngüsünü tamamlamıştır. Bu konuda Dubbo 3.2.15 kullanılmaktadır.

Adım 1: Sağlayıcı oluşturun

Yerel ortamda bir Maven projesi oluşturun, hizmet arayüzünü tanımlayın, XML tabanlı hizmet kaydını yapılandırın ve sağlayıcıyı başlatın.

1,1 Bir Maven projesi oluşturun ve bağımlılıkları ekleyin

  1. IntelliJ IDEA veya Eclipse gibi bir IDE kullanarak bir Maven projesi oluşturun.

  2. Aşağıdaki bağımlılıkları pom.xml dosyasına ekleyin:

    <dependencies>
    
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo</artifactId>
            <version>3.2.15</version>
        </dependency>
    
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-registry-nacos</artifactId>
            <version>3.2.15</version>
        </dependency>
    
        <dependency>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-client</artifactId>
            <version>1.1.1</version>
        </dependency>
    </dependencies>

1,2 Hizmet arayüzünü tanımlayın

Tüm Dubbo hizmetleri arayüzler aracılığıyla tanımlanır.

  1. src/main/java dizininde com.alibaba.edas paketini oluşturun.

  2. com.alibaba.edas paketi içinde IHelloService arayüzünü oluşturun:

    package com.alibaba.edas;
    
    public interface IHelloService {
        String sayHello(String str);
    }
  3. com.alibaba.edas paketi içinde IHelloServiceImpl uygulama sınıfını oluşturun:

    package com.alibaba.edas;
    
    public class IHelloServiceImpl implements IHelloService {
        public String sayHello(String str) {
            return "hello " + str;
        }
    }

1,3 Dubbo hizmetini yapılandırın

  1. src/main/resources dizininde provider.xml dosyasını oluşturun.

  2. Spring ve Dubbo XML ad alanlarını ekleyin:

    <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
    xmlns="http://www.springframework.org/schema/beans"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
    http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
  3. Hizmet arayüzünü dışa aktarın ve yerel Nacos Server'a işaret edin:

    Öğe Değer Not
    Kayıt defteri adresi nacos://127.0.0.1:8848 Yerel Nacos Server'ınıza işaret eder. SAE üzerine dağıttıktan sonra bu adres, SAE tarafından yönetilen kayıt defteriyle otomatik olarak değiştirilir; kod değişikliği gerekmez.
    Nacos bağlantı noktası 8848 Sabittir; değiştirmeyin.
    <dubbo:application name="demo-provider"/>
    
    <dubbo:protocol name="dubbo" port="28082"/>
    
    <dubbo:service interface="com.alibaba.edas.IHelloService" ref="helloService"/>
    
    <bean id="helloService" class="com.alibaba.edas.IHelloServiceImpl"/>
    
    <dubbo:registry address="nacos://127.0.0.1:8848" />

    Temel yapılandırma:

1,4 Sağlayıcıyı başlatın

  1. com.alibaba.edas paketi içinde Provider sınıfını oluşturun:

    package com.alibaba.edas;
    
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class Provider {
        public static void main(String[] args) throws Exception {
            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"provider.xml"});
            context.start();
            System.in.read();
        }
    }
  2. Hizmeti başlatmak için Provider ana yöntemini çalıştırın.

Sağlayıcıyı doğrulayın

http://127.0.0.1:8848 adresindeki Nacos konsolunda oturum açın. Sol gezinme bölmesinde Service List seçeneğine tıklayın.

Hizmet com.alibaba.edas.IHelloService listesinde, Service Group ve Provider IP bilgileriyle birlikte görünür.

Adım 2: Tüketici oluşturun

Tüketici için ayrı bir Maven projesi oluşturun, sağlayıcı hizmetine abone olun ve çağrının yerel ortamda çalıştığını doğrulayın.

2,1 Bir Maven projesi oluşturun ve bağımlılıkları ekleyin

Bir Maven projesi oluşturmak ve aynı üç bağımlılığı pom.xml dosyasına eklemek için Adım 1.1 ile aynı adımları izleyin.

2,2 Hizmet arayüzünü tanımlayın

  1. src/main/java dizininde com.alibaba.edas paketini oluşturun.

  2. com.alibaba.edas paketi içinde aynı IHelloService arayüzünü oluşturun:

    package com.alibaba.edas;
    
    public interface IHelloService {
        String sayHello(String str);
    }
Üretim ortamında arayüzü paylaşılan bir modülde tanımlayın ve hem sağlayıcı hem de tüketici tarafından Maven bağımlılıkları aracılığıyla referans verin. Arayüzün burada yinelenmesi yalnızca gösterim amaçlıdır.

2,3 Dubbo hizmetini yapılandırın

  1. src/main/resources dizininde consumer.xml dosyasını oluşturun.

  2. Spring ve Dubbo XML ad alanlarını ekleyin (provider.xml ile aynı):

    <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
    xmlns="http://www.springframework.org/schema/beans"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
    http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
  3. Sağlayıcı hizmetine abone olun:

    <dubbo:application name="demo-consumer"/>
    
    <dubbo:registry address="nacos://127.0.0.1:8848"/>
    
    <dubbo:reference id="helloService" interface="com.alibaba.edas.IHelloService"/>

2,4 Tüketiciyi başlatın

  1. com.alibaba.edas paketi içinde Consumer sınıfını oluşturun:

    package com.alibaba.edas;
    
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import java.util.concurrent.TimeUnit;
    
    public class Consumer {
        public static void main(String[] args) throws Exception {
            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"consumer.xml"});
            context.start();
            while (true) {
                try {
                    TimeUnit.SECONDS.sleep(5);
                    IHelloService demoService = (IHelloService)context.getBean("helloService");
                    String result = demoService.sayHello("world");
                    System.out.println(result);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }
  2. Hizmeti başlatmak için Consumer ana yöntemini çalıştırın.

Tüketiciyi doğrulayın

Başlatmanın ardından konsol sürekli olarak aşağıdakileri yazdırır:

hello world

Bu çıktı, tüketicinin sağlayıcıyı başarıyla çağırdığını doğrular.

http://127.0.0.1:8848 adresindeki Nacos konsolunda oturum açın ve sol gezinme bölmesinde Services seçeneğine tıklayın. Callers seçeneğini belirleyin.

Hizmet com.alibaba.edas.IHelloService listesinde, Service Group ve Subscriber IP bilgileriyle birlikte görünür.

Adım 3: SAE üzerine dağıtın

Sağlayıcı ve tüketiciyi çalıştırılabilir JAR dosyaları olarak paketleyin ve bunları SAE üzerine dağıtın.

3,1 Derleme eklentisini ekleyin

Her iki projenin de pom.xml dosyasına aşağıdaki <build> yapılandırmasını ekleyin:

  • Provider — mainClass değerini com.alibaba.sae.Provider olarak ayarlayın:

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                        <configuration>
                            <classifier>spring-boot</classifier>
                            <mainClass>com.alibaba.sae.Provider</mainClass>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
  • Consumer — mainClass değerini com.alibaba.sae.Consumer olarak ayarlayın:

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                        <configuration>
                            <classifier>spring-boot</classifier>
                            <mainClass>com.alibaba.sae.Consumer</mainClass>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

3,2 JAR paketlerini derleyin

Her proje dizininde aşağıdaki komutu çalıştırın:

mvn clean package

Bu işlem, target/ dizininde çalıştırılabilir bir JAR dosyası oluşturur.

3,3 SAE üzerine dağıtın

Her iki JAR paketini de SAE üzerine dağıtın. Dağıtım adımları için Java uygulaması dağıtma konusuna bakın.

Dağıtımdan sonra SAE, yerel Nacos kayıt defteri adresini ( nacos://127.0.0.1:8848 ) otomatik olarak SAE tarafından yönetilen hizmet kayıt defterinin adresiyle değiştirir. Yapılandırma dosyalarınızda herhangi bir değişiklik yapmanıza gerek yoktur.

Sonraki adımlar