Heim  >  Artikel  >  Java  >  Eine verteilte Service-Framework-Dubbo-Instanz

Eine verteilte Service-Framework-Dubbo-Instanz

零下一度
零下一度Original
2017-07-20 18:08:082816Durchsuche

Dubbo ist ein verteiltes Service-Framework. Da es sich um einen Dienst handelt, muss es Dienstanbieter und Dienstaufrufer geben.

Als nächstes schreiben wir zunächst einen Dienstleister. Das Projekt verwendet weiterhin das Projekt im vorherigen Artikel „Erste Schritte mit Spring 4“.

Wir fügen Dubbo-Abhängigkeit in pom.xml hinzu


com. /groupId>
dubbo
2.5.3

Schreiben Sie die folgende Klasse:

package com.mm.service;public interface WeatherService {public String getMessage(String city);
}

package com.mm.service.impl;import com.mm.service.WeatherService;public class WeatherServiceImpl implements WeatherService{

    @Overridepublic String getMessage(String city) {return city+"天气晴朗,局部有阵雨";
    }

}

Erstellen Sie eine neue Federkonfigurationsdatei (provider.xml)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"xsi:schemaLocation="http://www.springframework.org/schema/beans                        ">
 
    <!-- 提供方应用信息,用于计算依赖关系 -->
    <dubbo:application name="mm-weather"  />
 
    <!-- 使用multicast广播注册中心暴露服务地址 -->
    <dubbo:registry address="multicast://224.5.6.7:1234" />
 
    <!-- 用dubbo协议在20880端口暴露服务 -->
    <dubbo:protocol name="dubbo" port="20880" />
 
    <!-- 声明需要暴露的服务接口 -->
    <dubbo:service interface="com.mm.service.WeatherService" ref="weatherService" />
 
    <!-- 和本地bean一样实现服务 -->
    <bean id="weatherService" class="com.mm.service.impl.WeatherServiceImpl" />
 
</beans>

Erstellen Sie ein neues Konsolenprogramm für den Dienststart

package com.mm.main.dubbo;import java.io.IOException;import org.springframework.context.support.ClassPathXmlApplicationContext;public class DubboProvider {public static void main(String[] args) throws IOException{
         ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"config/provider.xml"});
         context.start();
         System.in.read(); // 按任意键退出    }
}

Dann starten wir den Dienstanbieter und es wird keine Fehlermeldung gefunden. Der Dienst sollte Es hat erfolgreich begonnen.

Als nächstes schreiben wir den Service-Anrufer, offiziell Verbraucher genannt. Der Einfachheit halber habe ich hier direkt eine Kopie des Codes in den neuen Arbeitsbereich kopiert und einfach Maven und Tomcat konfiguriert. Und löschen Sie die entsprechende Implementierungsklasse. Die Codestruktur ist wie folgt:

consumer.xml-Datei lautet wie folgt:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"xsi:schemaLocation="http://www.springframework.org/schema/beans                        ">
 
    <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
    <dubbo:application name="mm-weather-consumer"  />
 
    <!-- 使用multicast广播注册中心暴露发现服务地址 -->
    <dubbo:registry address="multicast://224.5.6.7:1234" />
 
    <!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
    <dubbo:reference id="weatherService" interface="com.mm.service.WeatherService" />
 
</beans>

Erstellen Sie ein neues Konsolenprogramm, das zum Aufrufen von Diensten verwendet wird

package com.mm.main.dubbo;import java.io.IOException;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.mm.service.WeatherService;public class DubboConsumer {public static void main(String[] args) throws IOException{
         ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"config/consumer.xml"});
         WeatherService  demoService = (WeatherService )context.getBean("weatherService"); // 获取远程服务代理 String hello = demoService.getMessage("北京"); // 执行远程方法 System.out.println( hello ); // 显示调用结果    }
}

Die Konsolenausgabe lautet wie folgt:

Gleichzeitig finden Sie in der Konsole des Anbieters auch folgende Informationen:

Zusätzlicher Zuschlag :

im Frühjahr Bei Verwendung des Dubbo-Tags in der Konfigurationsdatei wird ein Fehler gemeldet. Es sollte eigentlich keine Auswirkungen darauf haben, es handelt sich wahrscheinlich um ein Problem mit der Überprüfung der Eclipse-Datei. Aber es war etwas unangenehm, also...

Suchen Sie zunächst dubbo-2.5.3.jar im lokalen Maven-Warehouse, dekomprimieren Sie es und suchen Sie die XSD-Datei , wie folgt:

Eclipse-Konfiguration öffnen

wird Der Wert des Schlüssels wird geändert in:

Klicken Sie dann mit der rechten Maustaste auf „provider.xml“ und bestätigen Sie, dass die Fehlermeldung ausgeblendet ist.

Das obige ist der detaillierte Inhalt vonEine verteilte Service-Framework-Dubbo-Instanz. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn