Préface
Pour des raisons de travail, il est nécessaire d'intégrer Dubbo dans le projet, j'ai donc vérifié les documents liés à Dubbo et constaté que Dubbo n'avait pas été mis à jour pour le moment, j'ai donc tourné mon attention vers Dubbox. Dubbox est un projet développé par Dangdang.com basé sur Dubbo, Dubbox. Parce que l'un des projets de l'entreprise est basé sur Spring MVC 3.0 et l'autre est basé sur Spring Boot, et Spring Boot a relativement moins de documents, donc cet article enregistre comment hériter du Dubbox sous Spring Boot
1. Installer Zookeeper
1. Introduction à Zookeeper
Zookeeper est un service de coordination d'application distribué Open Source distribué. Il s'agit d'une implémentation open source de Chubby de Google et d'un composant important de Hadoop et HBASE. Il s'agit d'un logiciel qui fournit des services cohérents pour les applications distribuées, et ses fonctions incluent: Configuration et maintenance, services de noms de domaine, synchronisation distribuée, services de groupe, etc.
L'objectif de Zookeeper est d'emballer des services clés complexes et sujets aux erreurs et de fournir aux utilisateurs des interfaces simples et faciles à utiliser et des systèmes efficaces et stables.
Dubbo est un cadre distribué qui repose sur Zookeeper. Bien sûr, le Dubbox de développement secondaire s'appuiera certainement sur Zookeeper, nous devons donc d'abord installer Zookeeper.
2. Télécharger Zookeeper
Adresse officielle du site officiel de Zookeeper http://zookeeper.apache.org/
Télécharger l'adresse http://apache.fayea.com/zookeeper/
L'adresse de téléchargement locale est plus pratique: //www.vevb.com/softs/578345.html
3. Installer Zookeeper
Parce que je l'ai configuré dans l'environnement Windows, je parlerai brièvement de la configuration ci-dessous Windows. Tout d'abord, dézip le package compressé, puis entrez le dossier Conf, copiez zoosample.cfg pour créer une copie, puis le renommer sur zoo.cfg, car ZooKeeper ne reconnaît que zoo.cfg, et la valeur par défaut n'est pas disponible. zoosample.cfg est le fichier de configuration par défaut, mais en raison du nom de fichier, ZooKeeper ne peut pas le reconnaître. Bien sûr, il est normal de renommer directement Zoo_sample.cfg, cela dépend simplement de votre préféré.
4. Démarrer Zookeeper
Exécutez simplement zkserver.cmd dans le répertoire bin directement dans l'environnement Windows. S'il s'agit d'un environnement Linux, exécutez-le dans le répertoire bac.
./zkserver.sh start
Le gardien de zoo peut être démarré
5. Ajouter les dépendances dubox
<dependency> <proupId> com.alibaba </proupId> <Ertifactid> dubbo </artifactid> <version> 2.8.4 </-version> </dependency> <dependency> <proupId> com.101tec </proupid> <eartfactId> zkclient </ artifactid> <version> 0.9 </De version> </Dependency> <Dedidency> <GroupId> org.apache.zookeeper </proupId> <Artifactid> ZooKeeper </Retifactid> <DERVIÈRE> 3.4.6 </DERNIFRATION> <CARCLUSIONS> <CARCLUSION> <GroupID> ORG.SLF4J </PROUPSID> <ARTIFACTID> SLF4J-LOG4J12 </RetifActid> </clusion> <cuslusion> <GroupId> Log4j </proupheId> <ArtefactId> LOG4J </ ArfactId> </clussion> </clusion> </ Dependency>
Notez que la version 2.8.4 de Dubbo ici est compilée par moi-même, qui n'est pas disponible dans le référentiel Maven parce que Dubbo n'est plus mis à jour, tandis que 2.8.4 est Dubbox de Dangdang.com, donc si vous souhaitez l'utiliser, soit compiler Dubbox ou utiliser l'ancienne version de Dubbo
6. Ajouter la classe d'interface du fournisseur de services:
package wang.raye.dubbo.interfaces; interface publique DubboInterface {public String Hello (nom de chaîne);}Classe d'implémentation d'interface:
package wang.raye.dubbodemo1; import org.springframework.sterreotype.service; import wang.raye.dubbo.dubbointerface; @ServicePublic Class Dubboimplt implémente DubboInterface {public String Hello (String Name) {return "Hello" + name + "Ceci est dubbodemo1"; }}7. Ajouter le fichier XML de configuration Dubbo au dossier Sources. Vous pouvez nommer le nom à volonté. Voici Dubbo.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: jee = "http://www.springframework.org/schema/jee" xmlns: tx = "http://www.springframework.org/schema/tx" xmlns: dubbo = "http://code.alibabatech.com/schema/dubbo" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/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 "> <! - Informations de nom d'application du fournisseur, ce qui est équivalent pour donner un nom. Notre page de gestion de Dubbo est plus claire de quelle application exposée-> <dubbo: application name = "Dubbo-Provider1"> </ Dubbo: application> <! - Exposez l'interface en utilisant Annotation <BoBbo: Annotation Package = "Wang.Raye.Dubbodemo1" /> -> <! - Exposez l'adresse de service à l'aide du centre d'enregistrement Zookeep Adresse = "ZooKeeper: //192.168.1.126: 2181" check = "false" abonnez-vous = "falsi"
Chaque nœud ici a une explication, je crois que ce ne sera pas trop d'explication
8. Configurer les consommateurs
Références aux fournisseurs distants en classe
package wang.raye.dubbodemo3.Controller; import org.springframework.beans.factory.annotation.autowired; import org.springframework.sterreotype.Controller; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.ResponseBody; import wang.raye.dubbo.dubbointerface; @ControllerPublic classe dubbocontroll {@autowired private DubboInterface Interface1; @RequestMapping ("/ Hello") @ResponseBody public String Hello (String Name) {return interface1.hello (name); }}Configuration XML du consommateur
<Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns: dubbo = "http://code.alibaTech.com/schema/Dub =" http://code.alibaTech.com/schema/Dub = " XSI: ScheMalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-eans.xsd http://code.alibatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd "> <! - Nom de l'application de consommation, utilisé pour calculer les dépendances, pas les conditions correspondantes, ne soyez pas le même que le fournisseur -> <dubbo: application name =" Dubbo-custom-dsp "/> <dubbo: registre adresse =" zookeeper: //192.168. <! - Générer un agent de service à distance, vous pouvez utiliser Demoservice comme les beans locaux -> <dubbo: id de référence = "dubboService" interface = "wang.raye.dubbo.interfaces.dubbointerface" /> </ beans>
Il y a des commentaires ici, donc il ne devrait pas être nécessaire d'en dire plus. De plus, cet article ne fait pas attention à la configuration de Dubbo, mais parle principalement de l'intégration de Spring Boot Dubbox
9. Référence de la configuration du Dubbo XML pour ajouter des annotations à la classe d'application de démarrage Spring
@Importresource ({"ClassPath: Dubbo.xml"})Parce que mon nom XML est dubbo.xml, lorsque vous l'utilisez, vous devez le changer en votre propre nom XML. Remarque: La classe d'application du projet Consumer et du projet de fournisseur de services doit être configurée avec cette annotation.
Fin
À ce stade, l'intégration Spring Boot Duubox est terminée. Bien sûr, il doit être vide de le dire, donc le projet que j'ai testé a été téléchargé sur Github. Vous pouvez vous y référer. Bien sûr, si vous souhaitez le tester, vous devez modifier l'adresse Zookeeper dans le nœud Dubbo: Registry de Dubbo.xml.
Adresse de démonstration, afin de montrer les avantages de Dubbo, j'ai créé deux fournisseurs de services. Si j'appelle fréquemment, je sélectionnerai automatiquement l'une de ces deux et éviterai même l'équilibrage de charge. Cela devrait être fait par Zookeeper lui-même, donc je pense que c'est assez bon.
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.