Vorwort
Aus den Arbeitsgründen muss Dubbo in das Projekt integriert werden. Daher habe ich die Dubbo -bezogenen Dokumente überprüft und festgestellt, dass Dubbo derzeit nicht aktualisiert wurde. Deshalb habe ich meine Aufmerksamkeit auf Dubbox zugewandt. Dubbox ist ein von Dangdang.com basierendes Projekt, das auf Dubbo, Dubbox, entwickelt wurde. Da eines der Projekte des Unternehmens auf Spring MVC 3.0 basiert und das andere auf Spring Boot basiert und Spring Boot relativ weniger Dokumente hat
1. Installieren Sie Zookeeper
1. Einführung in Zookeeper
Zookeeper ist ein verteilter Open -Source -Distributed Application Coordination Service. Es handelt sich um eine Open -Source -Implementierung von Googles Chubby und eine wichtige Komponente von Hadoop und HBase. Es handelt sich um eine Software, die konsistente Dienste für verteilte Anwendungen anbietet. Zu ihren Funktionen gehören: Konfiguration und Wartung, Domain -Namensdienste, verteilte Synchronisation, Gruppendienste usw.
Ziel von Zookeeper ist es, komplexe und fehleranfällige Schlüsseldienste zu verpacken und Benutzern einfache und benutzerfreundliche Schnittstellen und effiziente und stabile Systeme zu bieten.
Dubbo ist ein verteiltes Rahmen, das auf Zookeeper beruht. Natürlich wird die Secondary Development Dubbox definitiv auf Zookeeper beruhen, daher müssen wir Zookeeper zuerst installieren.
2. Laden Sie Zookeeper herunter
Zookeeper Offizielle Website -Adresse http://zookeeper.apache.org/
Laden Sie die Adresse http://apache.fayea.com/zookeeper/ herunter
Lokale Download -Adresse ist bequemer: //www.vevb.com/softs/578345.html
3. Installieren Sie Zookeeper
Da ich es in der Windows -Umgebung konfiguriert habe, werde ich kurz über die Konfiguration unter Windows sprechen. Entpacken Sie zunächst das komprimierte Paket, geben Sie dann den Conf -Ordner ein, kopieren Sie Zoosample.cfg, um eine Kopie zu erstellen, und benennen Sie ihn dann in Zoo.cfg um, da Zookeeper nur Zoo.cfg erkennt und der Standard nicht verfügbar ist. zoosample.cfg ist die Standardkonfigurationsdatei, aber aufgrund des Dateinamens kann Zookeeper sie nicht erkennen. Natürlich ist es in Ordnung, zoo_sample.cfg direkt umzubenennen, es hängt nur von Ihrem Favoriten ab.
4. Starten Sie Zookeeper
Führen Sie einfach zkServer.cmd im Bin -Verzeichnis direkt in der Windows -Umgebung aus. Wenn es sich um eine Linux -Umgebung handelt, führen Sie sie im Bin -Verzeichnis aus.
./zkServer.sh Start
Zookeeper kann gestartet werden
5. Dubbox -Abhängigkeiten hinzufügen
<dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.8.4</version> </dependency> <dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.9</version> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.6</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId> log4j </artifactId> </exklusion> </exklusions> </abhängig>
Beachten Sie, dass die 2.8.4 -Version von Dubbo hier von mir zusammengestellt wird, was im Maven -Repository nicht verfügbar ist
6. Fügen Sie die Schnittstellenklasse des Dienstanbieters hinzu:
Paket wang.raye.dubbo.interfaces; public interface dubbointerface {public String hello (String -Name);}Schnittstellen -Implementierungsklasse:
Paket wang.raye.dubbodemo1; import org.springframework.stereotype.service; import.raye.dubbo.dubboterface; @ServicePublic Class Dubboimpl implementiert Dubbointerface {public String Hallo (String -Name) {return "hello"+name+"Dies ist Dubbodemo1"; }}7. Fügen Sie die XML -XML -Datei der Dubbo -Konfiguration in den Quellenordner hinzu. Sie können den Namen nach Belieben benennen. Hier ist Dubbo.xml
<? xmlns: Jee = "http://www.springframework.org/schema/jee" xmlns: tx = "http://www.spingframework.org/schema/tx" xmlns: dubbo = "http://code.alibabatech xmlns: context = "http://www.springframework.org/schema/context" xsi: schemalocation = "http://www.spingframework.org/schema/beans http://www.springframe.org/schems/beans- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.g/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsdd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd "Default-Lazy-init =" False "> <!-Provider-Anwendungsnamennamen-Informationen, dies ist äquivaler Informationen, dies ist äquivaler Informationen, dies ist äquivaler, dies ist äquivaler, dies ist äquivaler, dies ist äquivaler, dies ist äquivaler, dies ist äquivaler, dies ist äquivaler, dies ist äquivaler, dies ist äquivalent, das äquivalent gib einen namen. Unsere Dubbo-Management-Seite ist klarer, welche Anwendung exponiert wird-> <Dubbo: Anwendungsname = "Dubbo-Provider1"> < /Dubbo: Anwendung> <!-Die Schnittstelle mit Annotation <Dubbo: Annotation Package = "Wang.raye.dubbodemo1" />-> <!-Die Service-Adresse mit Zookeper-Zentrum für Zookeper-Registrierung-> <dobbo: Registrierung enthüllen. adress = "zookeeper: //192.168.1.126: 2181" check = "false" subscribe = "false" Register = ""> </dubbo: Registrierung> <!-Exposition Die Schnittstelle zu entlarven-> <dubbo: service interface
Jeder Knoten hier hat eine Erklärung, ich glaube, es wird nicht zu viel Erklärung sein
8. Konfigurieren Sie Verbraucher
Verweise auf Remote -Anbieter im Unterricht
Paket wang.raye.dubbodemo3.controller; import org.springframework.bean.factory.annotation.autowired; import org.springframework.stereotype.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.Responsebody; import wang.raye.dubbo.dubboterface; @controllerPublic Klasse DubboconTroll {@Autowered Private Dubbointerface Interface1; @RequestMapping ("/hello") @ResponseBody public String Hallo (String -Name) {return interface1.hello (Name); }}XML -Konfiguration des Verbrauchers
<beans xmlns = "http://www.springframework.org/schema/bean XSI: Schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http:/code.alibabatech.com/sschema/dema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <!-- Consumer application name, used to calculate dependencies, not matching conditions, do not be the same as the provider --> <dubbo:application name="dubbo-custom-dsp"/> <dubbo:registry address="zookeeper://192.168.1.126:2181" /> <!-- Generate remote service agent, you can use demoService like local beans --> <dubbo:reference id="dubboService" interface="wang.raye.dubbo.interfaces.DubboInterface" /> </beans>
Hier gibt es Kommentare, daher sollte es nicht mehr sagen, mehr zu sagen. Darüber hinaus achtet dieser Artikel nicht auf die Dubbo -Konfiguration, sondern spricht hauptsächlich über Spring Boot Integration Dubbox
9. Referenzdubbo -Konfiguration XML, um Anmerkungen zur Spring -Start -Anwendungsklasse hinzuzufügen
@Importresource ({"ClassPath: Dubbo.xml"})Da mein XML -Name Dubbo.xml lautet, müssen Sie ihn bei Verwendung in Ihren eigenen XML -Namen ändern. Hinweis: Die Anwendungsklasse des Verbraucherprojekts und des Dienstanbieterprojekts muss mit dieser Annotation konfiguriert werden.
Ende
Zu diesem Zeitpunkt ist der Spring Boot Integration Duubox fertig. Natürlich muss es leer sein, dies zu sagen, daher wurde das von mir getestete Projekt auf GitHub hochgeladen. Sie können sich darauf beziehen. Wenn Sie es testen möchten, müssen Sie natürlich die Zookeeper -Adresse im Dubbo: Registry -Knoten von Dubbo.xml ändern.
Demo -Adresse, um die Vorteile von Dubbo zu zeigen, habe ich zwei Dienstleister erstellt. Wenn ich häufig anrufe, wähle ich automatisch eines dieser beiden aus und vermeide sogar einen Lastausgleich. Es sollte von Zookeeper selbst erledigt werden, also finde ich es ziemlich gut.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.