序文
仕事上の理由により、Dubboをプロジェクトに統合する必要があるため、Dubbo関連のドキュメントを確認し、Dubboが現在更新されていないことを発見したため、Dubboxに注意を向けました。 Dubboxは、DubboのDubboxに基づいたDangdang.comが開発したプロジェクトです。同社のプロジェクトの1つはSpring MVC 3.0に基づいており、もう1つはSpring Bootに基づいており、Spring Bootのドキュメントは比較的少ないため、この記事ではSpring Bootの下でDubboxを継承する方法を記録しています。
1. Zookeeperをインストールします
1。Zookeeperの紹介
Zookeeperは、分散型のオープンソース分散アプリケーション調整サービスです。これは、Googleのぽっちゃりのオープンソースの実装であり、HadoopとHbaseの重要なコンポーネントです。分散アプリケーションに一貫したサービスを提供するソフトウェアであり、その機能には、構成とメンテナンス、ドメイン名サービス、分散型同期、グループサービスなどが含まれます。
Zookeeperの目標は、複雑でエラーが発生しやすい主要サービスをパッケージ化し、ユーザーにシンプルで使いやすいインターフェイスと効率的で安定したシステムを提供することです。
Dubboは、Zookeeperに依存する分散フレームワークです。もちろん、二次開発ダブボックスは間違いなくZookeeperに依存するため、最初にZookeeperをインストールする必要があります。
2。Zookeeperをダウンロードします
Zookeeper公式ウェブサイトアドレスhttp://zookeeper.apache.org/
アドレスをダウンロードhttp://apache.fayea.com/zookeeper/
ローカルダウンロードアドレスはもっと便利です://www.vevb.com/softs/578345.html
3. Zookeeperをインストールします
Windows環境で構成したため、Windowsの下の構成について簡単に説明します。最初に、圧縮パッケージを解凍し、confフォルダーを入力し、zoosample.cfgをコピーしてコピーを作成し、zoo.cfgに変更します。zookeeperはzoo.cfgのみを認識し、デフォルトは使用できないためです。 zoosample.cfgはデフォルトの構成ファイルですが、ファイル名のため、Zookeeperはそれを認識できません。もちろん、zoo_sample.cfgを直接名前を変更しても構いません。お気に入りに依存します。
4. Zookeeperを開始します
Windows環境でBINディレクトリでzkserver.cmdを直接実行するだけです。 Linux環境の場合は、Binディレクトリで実行します。
./zkserver.sh start
Zookeeperを開始できます
5.ダブボックスの依存関係を追加します
<Dependency> GroupId> com.alibaba </groupId> <artifactid> dubbo </artifactid> <bersion> 2.8.4 </version> </dependency> <依存関係> <groupId> com.101tec </groupId> <artifactid> zkclient </artifactid> < <groupid> org.apache.zookeeper </groupid> <artifactid> zookeeper </artifactid> <version> 3.4.6 </version> <explusions> <exclusion> <groupid> org.slf4j </groupId> <artifactid> slf4j-log4j12 </artifactid> </< <GroupId> log4j </groupId> <artifactid> log4j </artifactid> </explusion> </explusions> </dependency>
ここのDubboの2.8.4バージョンは自分でコンパイルされていることに注意してください。これはDubboが更新されなくなったため、Mavenリポジトリでは利用できません。2.8.4はDangdang.comのDubboxです。
6.サービスプロバイダーのインターフェイスクラスを追加します。
パッケージwang.raye.dubbo.interfaces; public interface dubbointerface {public string hello(string name);}インターフェイス実装クラス:
パッケージwang.raye.dubbodemo1; Import org.springframework.stereotype.service; import wang.raye.dubbo.dubbointerface; @servicepublic class dubboimplはdubbointerfaceを実装します{public string hello(string name){return "hello"+name+"これはdubbodemo1"です。 }}7. Dubbo Configuration XML XMLファイルをソースフォルダーに追加します。名前に自由に名前を付けることができます。こちらが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 = " xmlns:Context = "http://www.springframework.org/schema/context" xsi:schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/spring/spring/ 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://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd "default-lazy-init =" false "> <! Dubbo Management Pageは、どのアプリケーションが公開されているかを明確にしています - > <dubbo:アプリケーション名= "dubbo-provider1"> < /dubbo:application> <! - アノテーションを使用してインターフェイスを公開します<dubbo:annotation package = "wang.dubbodemo1" />> - > <! address = "zookeeper://192.168.1.126:2181" check = "false" subscribe = "false" register = "" "> </dubbo:registry> <! - 露出するインターフェイス - > <dubbo:dubbo:service interface =" wang.dubbo.interfaces.dubbointerface.dubbointerface.dubbointerface
ここのすべてのノードには説明があります、私はそれがあまり説明しないと信じています
8。消費者を構成します
クラスのリモートプロバイダーへの参照
パッケージwang.raye.dubbodemo3.controller; Import org.springframework.beans.factory.annotation.autowired; org.springframework.stereotype.controllerをインポートします。 org.springframework.web.bind.annotation.requestmappingをインポートします。 Import org.springframework.web.bind.annotation.responsebody; import wang.raye.dubbo.dubbointerface; @controllerpublic class dubbocontroll {@autowired privatedubbointerface interface1; @RequestMapping( "/hello")@responsebody public string hello(string name){return interface1.hello(name); }}消費者のXML構成
<beans xmlns = "http://www.springframework.org/schema/beans" xmlns:xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns:dubbo = " xsi:schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd "> <! - 依存関係を計算するために使用される消費者アプリケーション名、条件と一致するものではなく、プロバイダーと同じではありません - > <dubbo:アプリケーション名=" dubbo-custom-dsp "/> <dubbo:registry address = "zookeeper://192.168.1.126:2181"/> <! - リモートサービスエージェントを生成します。地元の豆などのデモサービスを使用できます。
ここにコメントがあるので、もっと言う必要はないはずです。さらに、この記事はDubboの構成に注意を払っていませんが、主にSpring Boot Integration Dubboxについて説明しています
9.リファレンスダボ構成XMLは、スプリングブートアプリケーションクラスにアノテーションを追加する
@importresource({"classpath:dubbo.xml"})私のXML名はdubbo.xmlであるため、使用するときは、独自のXML名に変更する必要があります。注:消費者プロジェクトのアプリケーションクラスとサービスプロバイダープロジェクトは、この注釈で構成する必要があります。
エンディング
この時点で、Spring Boot Integration Duuboxが終了しました。もちろん、これを言うのは空でなければならないので、私がテストしたプロジェクトはGithubにアップロードされました。あなたはそれを参照することができます。もちろん、テストしたい場合は、dubbo:dubbo.xmlのレジストリノードでZookeeperアドレスを変更する必要があります。
デモアドレスは、Dubboの利点を示すために、2つのサービスプロバイダーを作成しました。頻繁に電話した場合、これら2つのいずれかを自動的に選択し、負荷分散を避けます。 Zookeeper自体が行う必要があるので、とても良いと思います。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。