Tüm Ürünler
Search
Belge Merkezi

Microservices Engine:MSE üzerinde Dubbo uygulamaları için hizmet kayıt defteri oluşturun

Son Güncelleme:Oct 06, 2026

Bu eğitimde, bir Apache Dubbo uygulaması için Microservices Engine (MSE) üzerinde bir hizmet kayıt defteri oluşturur ve bunu hizmet kaydı ile keşfi için kullanırsınız. İşlem sonunda, yerel makinenizde çalışan bir Dubbo tüketicisi, MSE Nacos kayıt defteri aracılığıyla keşfettiği bir sağlayıcıyı çağırır.

Mimari

Örnek uygulama, bir sağlayıcı ve bir tüketiciden oluşan bir Dubbo mikroservis uygulamasıdır. Bu iki rolü yerel makinenizde iki ayrı Maven projesi olarak geliştirirsiniz; her ikisi de genel uç noktası üzerinden MSE'deki aynı kayıt defteri örneğine bağlanır.

  • Sağlayıcı projesi — com.alibaba.mse.IHelloService arabirimini 28082 bağlantı noktasında bir Dubbo hizmeti olarak sunar ve hizmeti MSE'deki kayıt defteri örneğine kaydeder.

  • Tüketici projesi — Aynı kayıt defteri örneği üzerinden com.alibaba.mse.IHelloService hizmetine abone olur ve sağlayıcıyı çağırır.

  • MSE'deki kayıt defteri örneği — Sağlayıcının kaydolduğu ve tüketicinin abone olduğu hizmet kayıt defteri olarak işlev görür.

Kayıt defteri türleri

MSE, bir Dubbo uygulaması için Nacos, ZooKeeper veya Eureka hizmet kayıt defterini barındırabilir. Bu eğitimde MSE Nacos kullanılır ve bu konudaki tüm yapılandırma örnekleri bir MSE Nacos örneğini hedefler.

  • Nacos (bu eğitimde kullanılır) — Dubbo kayıt defteri adresini MSE Nacos örneğinizin genel uç noktasına ayarlayın. Başka bir kayıt defterine özel yapılandırmaya gerek yoktur.

  • ZooKeeper — Hizmet kayıt defteri olarak MSE ZooKeeper kullanıyorsanız, 2. Adımdaki kayıt defteri kodunu ZooKeeper için uygun kodla değiştirin. Daha fazla bilgi için bkz. Kullanım notları.

Ön koşullar

  • Maven dosyasını indirin ve ortam değişkenlerini ayarlayın.

  • Yerel makinenizde IntelliJ IDEA veya Eclipse gibi bir IDE yüklüdür.

  • Bir MSE Nacos örneğiniz vardır. Talimatlar için bkz. Nacos motor örneği oluşturma

  • Ad alanı oluşturma. Bu eğitimde varsayılan ad alanı olan Public kullanılır.

1. Adım: Sağlayıcı projesini oluşturun ve hizmeti tanımlayın

Bu adımda, sağlayıcı için Maven projesini oluşturur ve sağlayıcının sunduğu hizmeti tanımlarsınız. Dubbo'da tüm hizmetler arabirim olarak sunulur.

  1. IDE'nizde sağlayıcı için bir Maven projesi oluşturun.

  2. pom.xml dosyasına dubbo ve nacos-client bağımlılıklarını ekleyin.

    <dependencies>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.7.9</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-client</artifactId>
            <version>1.4.2</version>
        </dependency>
    </dependencies>
  3. src/main/java dizininde com.alibaba.mse adlı bir paket oluşturun.

  4. com.alibaba.mse paketi içinde bir sayHello yöntemi içeren IHelloService adlı bir arabirim oluşturun.

    package com.alibaba.mse;
    
    public interface IHelloService {
        String sayHello(String str);
    }
  5. com.alibaba.mse paketi içinde arabirimi uygulayan IHelloServiceImpl adlı bir sınıf oluşturun.

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

2. Adım: Kayıt defteri olarak MSE Nacos'u kullanmak üzere sağlayıcıyı yapılandırın

Bu adımda, IHelloService hizmetini bir Dubbo hizmeti olarak sunan ve sağlayıcıyı MSE Nacos örneğine yönlendiren provider.xml dosyasını oluşturursunuz. Kayıt defteri yapılandırması bu bilgiyi gerektirdiğinden öncelikle örneğin uç noktasını alın.

  1. MSE konsolu üzerinde oturum açın ve MSE üzerinde oluşturduğunuz Nacos örneğinin genel uç noktasını görüntüleyin. Genel uç nokta, örnek listesinin Access Method sütununda gösterilir ve mse.XX.nacos.mse.aliyuncs.com biçimindedir.

  2. Sağlayıcı projesinin src/main/resources dizininde provider.xml adlı bir dosya oluşturun.

  3. Aşağıdaki yapılandırmayı provider.xml dosyasına ekleyin. mse.XX.nacos.mse.aliyuncs.com değerini Nacos örneğinizin genel uç noktasıyla değiştirin.

    <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">
    
        <dubbo:application name="demo-provider"/>
    
        <dubbo:protocol name="dubbo" port="28082"/>
    
        <dubbo:service interface="com.alibaba.mse.IHelloService" ref="helloService"/>
    
        <bean id="helloService" class="com.alibaba.mse.IHelloServiceImpl"/>
    
        <dubbo:registry address="nacos://mse.XX.nacos.mse.aliyuncs.com:8848" />
    </beans>

Aşağıdaki tabloda provider.xml dosyasındaki yapılandırma açıklanmaktadır.

Öğe Açıklama
xmlns, xmlns:xsi, xmlns:dubbo ve xsi:schemaLocation Spring XML Ad Alanı (xmlns), XML Şema Örneği (xmlns:xsi), Dubbo Ad Alanı (xmlns:dubbo) ve Şema Örneğini (xsi:schemaLocation) bildirir.
dubbo:application Sağlayıcı uygulamasının adı. Bu örnekte demo-provider kullanılır.
dubbo:protocol Hizmeti 28082 bağlantı noktasında dubbo protokolü üzerinden yayınlar.
dubbo:service ve bean IHelloService arabirimini ve IHelloServiceImpl uygulama sınıfını bir Dubbo hizmeti olarak sunar.
dubbo:registry MSE üzerinde oluşturduğunuz Nacos örneğini hizmet kayıt defteri olarak belirtir. Adres, örneğin genel uç noktasıdır.

3. Adım: Sağlayıcının MSE örneğine erişmesine izin verin

Sağlayıcı, MSE örneğinin genel uç noktası üzerinden kayıt defterine ulaşır; bu nedenle örneğin izin listesi trafiğe izin vermelidir. Sağlayıcıyı başlatmadan önce bu adımı tamamlayın. Aksi takdirde kayıt işlemi başarısız olur.

  1. MSE konsolunda sol gezinme bölmesinden Microservices Registry > Instances seçeneğini belirleyin. Instances sayfasında oluşturduğunuz MSE örneğini tıklayın.

  2. Örneğin izin listesini temizleyin. Herhangi bir IP adresi veya alt ağ maskesi belirtmezseniz tüm adresler örneğe erişebilir. Bu eğitimde boş bir izin listesi örnek olarak kullanılır. Daha fazla bilgi için bkz. İzin listesi ayarlama.

Uyarı

Boş bir izin listesi, tüm adreslerin MSE örneğine erişmesine olanak tanır.

4. Adım: Sağlayıcıyı başlatın ve kaydı doğrulayın

Bu adımda sağlayıcıyı başlatır ve MSE konsolunda hizmetin Nacos örneğine kaydedildiğini onaylarsınız.

  1. com.alibaba.mse paketi içinde Provider adlı bir sınıf oluşturun. Provider sınıfının main yönteminde Spring bağlamını yüklemek ve yapılandırdığınız Dubbo hizmetini sunmak için aşağıdaki kodu kullanın.

    package com.alibaba.mse;
    
    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 sınıfının main yöntemini çalıştırın. Tüketici bu işlemi çağırdığından eğitimi tamamladığınız ana kadar işlemi çalışır durumda tutun.

  3. MSE konsolunda MSE örneğinizin ayrıntılar sayfasında sol gezinme bölmesinden Service Management > Services seçeneğini belirleyin.

  4. Hizmet listesinde demo-provider uygulamasının sunduğu com.alibaba.mse.IHelloService arabirimini doğrulayın.

Arabirim hizmet listesinde görünmeden sonraki adıma geçmeyin. Arabirim görünmüyorsa aşağıdaki yapılandırmaları kontrol edin:

  • İzin listesi — MSE örneğinin izin listesi yerel makinenizin adresine izin verir. Boş bir izin listesi tüm adreslere izin verir.

  • Kayıt defteri adresi — provider.xml dosyasındaki dubbo:registry adresi mse.XX.nacos.mse.aliyuncs.com yer tutucusu yerine örneğinizin genel uç noktasını kullanır.

  • Kayıt defteri türü — dubbo:registry adresi, oluşturduğunuz örnek türünün şemasını kullanır (örneğin, bir MSE Nacos örneği için nacos://).

5. Adım: Tüketiciyi oluşturun ve hizmete abone olun

Bu adımda tüketici için ikinci bir Maven projesi oluşturur, aynı MSE Nacos örneği üzerinden com.alibaba.mse.IHelloService hizmetine abone olur ve sağlayıcıyı çağıran sınıfı uygularsınız.

  1. IDE'nizde tüketici için ikinci bir Maven projesi oluşturun.

  2. Tüketici projesinin pom.xml dosyasına dubbo ve nacos-client bağımlılıklarını ekleyin. Bağımlılıklar, 1. Adımdaki sağlayıcı projesiyle aynıdır.

  3. src/main/java dizininde com.alibaba.mse paketini oluşturun ve 1. Adımda tanımladığınız IHelloService arabirimini ekleyin. Tüketici hizmete arabirimi üzerinden başvurduğu için bu arabirim tüketici projesinin sınıf yolunda bulunmalıdır.

  4. Tüketici projesinin src/main/resources dizininde consumer.xml adlı bir dosya oluşturun. mse.XX.nacos.mse.aliyuncs.com değerini, provider.xml dosyasında yapılandırdığınız uç nokta ile aynı olan Nacos örneğinizin genel uç noktasıyla değiştirin.

    <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">
    
        <dubbo:application name="demo-consumer"/>
    
        <dubbo:registry address="nacos://mse.XX.nacos.mse.aliyuncs.com:8848" />
    
        <dubbo:reference id="helloService" interface="com.alibaba.mse.IHelloService"/>
    </beans>

    dubbo:registry öğesi tüketiciyi sağlayıcıyla aynı kayıt defterine yönlendirir ve dubbo:reference öğesi sağlayıcının sunduğu com.alibaba.mse.IHelloService arabirimine abone olur.

  5. com.alibaba.mse paketi içinde Consumer adlı bir sınıf oluşturun. Consumer sınıfının main yönteminde Spring bağlamını yüklemek ve abone olunan hizmetin sayHello yöntemini çağırmak için aşağıdaki kodu kullanın.

    package com.alibaba.mse;
    
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class Consumer {
        public static void main(String[] args) throws Exception {
            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"consumer.xml"});
            context.start();
            IHelloService helloService = (IHelloService) context.getBean("helloService");
            System.out.println(helloService.sayHello("mse"));
        }
    }

6. Adım: Tüketiciden sağlayıcıya yapılan çağrıyı doğrulayın

Bu adımda tüketicinin sağlayıcıyı MSE Nacos kayıt defteri üzerinden keşfettiğini ve sayHello yönteminin yanıtını aldığını onaylarsınız. Tüketici bağımsız değişken olarak mse değerini iletir ve IHelloServiceImpl bu bağımsız değişkenin önüne hello ekleyerek döndürür.

  1. Adımda başlattığınız sağlayıcı işleminin hala çalıştığını onaylayın.

  2. Consumer sınıfının main yöntemini çalıştırın.

  3. Tüketici projesinin konsol çıktısını kontrol edin. Aşağıdaki çıktı, tüketicinin sağlayıcıyı başarıyla çağırdığını gösterir:

    hello mse

Çağrı başarısız olursa veya hiçbir çıktı döndürülmezse aşağıdaki yapılandırmaları kontrol edin:

  • Sağlayıcı kullanılabilirliği — Sağlayıcı işlemi çalışıyor ve com.alibaba.mse.IHelloService MSE örneğinin hizmet listesinde görünüyor.

  • Kayıt defteri adresi — consumer.xml dosyasındaki dubbo:registry adresi, provider.xml dosyasında yapılandırdığınız genel uç noktadır.

  • Arabirim adı — consumer.xml dosyasının dubbo:reference öğesindeki arabirim, provider.xml dosyasının dubbo:service öğesindeki com.alibaba.mse.IHelloService arabirimiyle eşleşir.

  • İzin listesi — MSE örneğinin izin listesi yerel makinenizin adresine izin verir.