dubbo-zookeeper単機およびクラスタ構築
11754 ワード
プロジェクトが大きくなって、分布式の配置を始めて、dubboの使用を学んで、dubboバージョンの使用の2.8.4,zookeeperバージョンは3.4です.6
zookeeper 3をインストールします.4.6(単機)
zookeeperをダウンロード:http://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/
/usrディレクトリの下にzookeeperフォルダを作成し、zookeeperを解凍して/usr/zookeeper/ディレクトリの下に移動します.
環境変数の設定
zookeeperのプロファイルはzooです.cfg、だからconfディレクトリの下に入ってzoo_をコピーしますsample.cfgはzooと改名した.cfg
ここまでで構成が完了しましたので、簡単でしょう
zookeeperの起動
dubbo管理コンソールdubbo-adminのインストール
ダウンロード先:https://github.com/dangdangdotcom/dubbox
自分でmavenパッケージを使う必要がありますが、
私のここは梱包したwarがあって、ダウンロードして直接使います
WEB-INF/dubbo.properties
warパッケージをtomcat/webappsに入れてtomcatを起動し、
ブラウザのアクセス先:http://192.168.106.19:8080/dubbo-admin
デフォルトアカウント:root
デフォルトパスワード:root
dubboモニタdubbo-monitorのインストール
ダウンロード先:https://github.com/dangdangdotcom/dubbox
自分でmavenパッケージを使う必要がありますが、
こちらに改良してパッケージしたwarがあり、ダウンロードしてそのまま使用します.
アプリケーションを変更します.properties
tomcatでtomcatを起動する
ブラウザアクセス:http://192.168.106.19:8080/dubbo-monitor/
デフォルトアカウント:admin
デフォルトパスワード:admin
構成が完了しました.
次はコード部分です
コードはspringboot無xml構成方式を用いる.
コードディレクトリ構造
mavenモジュールはここで詳しく言わないで、できないなら先に勉強してもいいです.
サービスプロバイダdubbo-provider
maven依存
application.yml構成
サービス実装クラス
サービス消費者dubbo-consumer
maven依存はプロバイダと同じです
application.yml構成
コード実装
サービスプロバイダを起動し、サービス消費者を起動すれば呼び出すことができます.
次にクラスタ構築について述べる
zookeeper 3をインストールします.4.6(クラスタ)
ここで使用する擬似クラスタ、すなわち1つのサーバ(サーバが限られている)
zookeeper-3.4をコピーします.6 3点、それぞれ
zookeeper-3.4.6-server1
zookeeper-3.4.6-server2
zookeeper-3.4.6-server3
zookeeper-3.4.6-server 1距離
ディレクトリに入り、dataとlogsの2つのフォルダを作成します.
修正zoo.cfgファイル
zookeeper-3.4.6-server1
zookeeper-3.4.6-server2
zookeeper-3.4.6-server3
パラメータの説明
ServerID ID IDの作成
修正以外はcfgプロファイル、クラスタモードでもう一つのファイルmyidを配置し、このファイルはdataDirディレクトリの下で、このファイルの中に1つのデータがAの値で、上のプロファイルの中でzoo.cfgで構成されたdataDirパスにmyidファイルを作成
zookeeperの起動
dubbo-admin dubboを修正する.properties
dubbo-monitor修正アプリケーション.properties
tomcatの再起動
コード登録センターのアドレスが変更され、zookeeperクラスタの構成に変更され、プロバイダと消費者が変更されます.
クラスタ構築も完了した.
zookeeper 3をインストールします.4.6(単機)
zookeeperをダウンロード:http://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/
/usrディレクトリの下にzookeeperフォルダを作成し、zookeeperを解凍して/usr/zookeeper/ディレクトリの下に移動します.
tar -zxvf ./zookeeper-3.4.6.tar.gz
mv ./zookeeper-3.4.6 /usr/zookeeper/zookeeper-3.4.6/
環境変数の設定
export PATH=/usr/zookeeper/zookeeper-3.4.6/bin:$PATH
zookeeperのプロファイルはzooです.cfg、だからconfディレクトリの下に入ってzoo_をコピーしますsample.cfgはzooと改名した.cfg
cp zoo_sample.cfg zoo.cfg
ここまでで構成が完了しましたので、簡単でしょう
zookeeperの起動
/usr/zookeeper/zookeeper-3.4.6/bin/zkServer.sh start
dubbo管理コンソールdubbo-adminのインストール
ダウンロード先:https://github.com/dangdangdotcom/dubbox
自分でmavenパッケージを使う必要がありますが、
私のここは梱包したwarがあって、ダウンロードして直接使います
WEB-INF/dubbo.properties
dubbo.registry.address=zookeeper://127.0.0.1:2181
warパッケージをtomcat/webappsに入れてtomcatを起動し、
ブラウザのアクセス先:http://192.168.106.19:8080/dubbo-admin
デフォルトアカウント:root
デフォルトパスワード:root
dubboモニタdubbo-monitorのインストール
ダウンロード先:https://github.com/dangdangdotcom/dubbox
自分でmavenパッケージを使う必要がありますが、
こちらに改良してパッケージしたwarがあり、ダウンロードしてそのまま使用します.
アプリケーションを変更します.properties
dubbo.application.name=dubbo-monitor
dubbo.application.owner=
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.protocol.port=7070
tomcatでtomcatを起動する
ブラウザアクセス:http://192.168.106.19:8080/dubbo-monitor/
デフォルトアカウント:admin
デフォルトパスワード:admin
構成が完了しました.
次はコード部分です
コードはspringboot無xml構成方式を用いる.
コードディレクトリ構造
mavenモジュールはここで詳しく言わないで、できないなら先に勉強してもいいです.
サービスプロバイダdubbo-provider
maven依存
io.dubbo.springboot
spring-boot-starter-dubbo
1.0.0
com.alibaba
dubbo
2.8.4
log4j
log4j
org.apache.zookeeper
zookeeper
3.4.6
com.bwton
dubbo-interface
0.0.1-SNAPSHOT
application.yml構成
server:
port: 8081
## Dubbo
spring:
dubbo:
application: # , , 。
name: dubbo-provider
monitor: # monitor
protocol: registry
registry: # , 。
address: zookeeper://192.168.106.19:2181
protocol: # , , , 。
name: dubbo
port: 20880
scan: com.bwton.dubbo.provider.service.impl # package
サービス実装クラス
package com.bwton.dubbo.provider.service.impl;
import com.alibaba.dubbo.config.annotation.Service;
import com.bwton.dubbo.pojo.Do.UserDO;
import com.bwton.dubbo.pojo.vo.UserVO;
import com.bwton.dubbo.service.TestService;
import org.springframework.beans.BeanUtils;
/**
* @author XueXianlei
* @Description:
* @date 2018/10/8 14:51
*/
@Service(version = "1.0.0")
public class TestServiceImpl implements TestService {
@Override
public UserVO getUser(String userName) {
if (null == userName) {
return null;
}
UserDO userDO = new UserDO();
userDO.setId(1);
userDO.setUserName(userName);
UserVO userVO = new UserVO();
BeanUtils.copyProperties(userDO, userVO);
return userVO;
}
}
サービス消費者dubbo-consumer
maven依存はプロバイダと同じです
application.yml構成
server:
port: 8082
spring:
dubbo:
application: # , , 。
name: dubbo-consumer
monitor: # monitor
protocol: registry
registry: # , 。
address: zookeeper://192.168.106.19:2181
protocol: # , , , 。
name: dubbo
port: 20880
scan: com.bwton.dubbo.consumer.controller # package
consumer:
check: false
コード実装
package com.bwton.dubbo.consumer.controller;
import com.alibaba.dubbo.config.annotation.Reference;
import com.bwton.dubbo.pojo.vo.UserVO;
import com.bwton.dubbo.service.TestService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author XueXianlei
* @Description:
* @date 2018/10/8 15:06
*/
@RestController
@RequestMapping("/test")
public class TestController {
@Reference(version = "1.0.0")
private TestService testService;
@RequestMapping("/getUser")
public UserVO getUser(String userName) {
UserVO user = testService.getUser(userName);
return user;
}
}
サービスプロバイダを起動し、サービス消費者を起動すれば呼び出すことができます.
次にクラスタ構築について述べる
zookeeper 3をインストールします.4.6(クラスタ)
ここで使用する擬似クラスタ、すなわち1つのサーバ(サーバが限られている)
zookeeper-3.4をコピーします.6 3点、それぞれ
zookeeper-3.4.6-server1
zookeeper-3.4.6-server2
zookeeper-3.4.6-server3
zookeeper-3.4.6-server 1距離
ディレクトリに入り、dataとlogsの2つのフォルダを作成します.
cd zookeeper-3.4.6-server1
mkdir data
mkdir logs
修正zoo.cfgファイル
zookeeper-3.4.6-server1
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/zookeeper/zookeeper-3.4.6-server1/data
dataLogDir=/usr/zookeeper/zookeeper-3.4.6-server1/logs
clientPort=2181
server.1=127.0.0.1:2887:3887
server.2=127.0.0.1:2888:3888
server.3=127.0.0.1:2889:3889
zookeeper-3.4.6-server2
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/zookeeper/zookeeper-3.4.6-server2/data
dataLogDir=/usr/zookeeper/zookeeper-3.4.6-server2/logs
clientPort=2182
server.1=127.0.0.1:2887:3887
server.2=127.0.0.1:2888:3888
server.3=127.0.0.1:2889:3889
zookeeper-3.4.6-server3
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/zookeeper/zookeeper-3.4.6-server3/data
dataLogDir=/usr/zookeeper/zookeeper-3.4.6-server3/logs
clientPort=2183
server.1=127.0.0.1:2887:3887
server.2=127.0.0.1:2888:3888
server.3=127.0.0.1:2889:3889
パラメータの説明
initLimit: zookeeper server, leader, server follower. initLimit , follower leader . 5, 5 tickTime, 5*2000=10000ms=10s.
syncLimit: leader follower , . 2, 2 tickTime, 4000ms.
server.X=A:B:C X , server. A server IP . B server leader . C leader . , server B, C .
ServerID ID IDの作成
修正以外はcfgプロファイル、クラスタモードでもう一つのファイルmyidを配置し、このファイルはdataDirディレクトリの下で、このファイルの中に1つのデータがAの値で、上のプロファイルの中でzoo.cfgで構成されたdataDirパスにmyidファイルを作成
echo "1" > /usr/zookeeper/zookeeper-3.4.6-server1/data/myid
echo "2" > /usr/zookeeper/zookeeper-3.4.6-server2/data/myid
echo "3" > /usr/zookeeper/zookeeper-3.4.6-server3/data/myid
zookeeperの起動
/usr/zookeeper/zookeeper-3.4.6-server1/bin/zkServer.sh start
/usr/zookeeper/zookeeper-3.4.6-server2/bin/zkServer.sh start
/usr/zookeeper/zookeeper-3.4.6-server3/bin/zkServer.sh start
dubbo-admin dubboを修正する.properties
dubbo.registry.address=zookeeper://127.0.0.1:2181|zookeeper://127.0.0.1:2182|zookeeper://127.0.0.1:2183
dubbo-monitor修正アプリケーション.properties
dubbo.registry.address=zookeeper://127.0.0.1:2181|zookeeper://127.0.0.1:2182|zookeeper://127.0.0.1:218
tomcatの再起動
コード登録センターのアドレスが変更され、zookeeperクラスタの構成に変更され、プロバイダと消費者が変更されます.
server:
port: 8082
spring:
dubbo:
application: # , , 。
name: dubbo-consumer
registries[0]: # , 。
address: zookeeper://192.168.106.19:2181
registries[1]:
address: zookeeper://192.168.106.19:2182
registries[2]:
address: zookeeper://192.168.106.19:2183
monitor: # monitor
protocol: registry
protocol: # , , , 。
name: dubbo
port: 20880
scan: com.bwton.dubbo.consumer.controller # package
consumer:
check: false
クラスタ構築も完了した.