目前Dubbo主要版本有两个:Dubbo 2.7和Dubbo 2.6
两个版本最大的差异,在于配置管理中心。Dubbo 2.6版本所有数据都存在注册中心上,Dubbo 2.7版本分成了注册中心,配置中心,和元数据中心。
分布式服务架构
RPC : 远程过程调用
流动计算架构
环境搭建
注册中心 zookeeper 的安装
第一步:
解压 zookeeper 安装包(zookeeper-3.4.13.tar.gz)第二步:
运行 bin 目录下的zkServer.cmd
第一次运行 zkServer.cmd 会报一个错:
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing D:\Software\Dubbo\zookeeper-3.4.13\bin..\conf\zoo.cfg
初次运行会报错,没有zoo.cfg配置文件1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20Microsoft Windows [版本 10.0.17134.950]
(c) 2018 Microsoft Corporation。保留所有权利。
D:\Software\Dubbo\zookeeper-3.4.13\bin>zkServer.cmd
D:\Software\Dubbo\zookeeper-3.4.13\bin>call "C:\Program Files\Java\jdk1.8.0_131"\bin\java "-Dzookeeper.log.dir=D:\Software\Dubbo\zookeeper-3.4.13\bin\.." "-Dzookeeper.root.logger=INFO,CONSOLE" -cp "D:\Software\Dubbo\zookeeper-3.4.13\bin\..\build\classes;D:\Software\Dubbo\zookeeper-3.4.13\bin\..\build\lib\*;D:\Software\Dubbo\zookeeper-3.4.13\bin\..\*;D:\Software\Dubbo\zookeeper-3.4.13\bin\..\lib\*;D:\Software\Dubbo\zookeeper-3.4.13\bin\..\conf" org.apache.zookeeper.server.quorum.QuorumPeerMain "D:\Software\Dubbo\zookeeper-3.4.13\bin\..\conf\zoo.cfg"
2019-09-22 09:06:43,767 [myid:] - INFO [main:QuorumPeerConfig@136] - Reading configuration from: D:\Software\Dubbo\zookeeper-3.4.13\bin\..\conf\zoo.cfg
2019-09-22 09:06:43,777 [myid:] - ERROR [main:QuorumPeerMain@88] - Invalid config, exiting abnormally
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing D:\Software\Dubbo\zookeeper-3.4.13\bin\..\conf\zoo.cfg
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:156)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:104)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:81)
Caused by: java.lang.IllegalArgumentException: D:\Software\Dubbo\zookeeper-3.4.13\bin\..\conf\zoo.cfg file is missing
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:140)
... 2 more
Invalid config, exiting abnormally
D:\Software\Dubbo\zookeeper-3.4.13\bin>endlocal
D:\Software\Dubbo\zookeeper-3.4.13\bin>第三步:
解决:
在 zookeeper 的解压包下有一个 conf 文件夹,在该目录下有一个 zoo_sample.cfg 的配置文件, 在当前目录下复制一个该配置文件的副本,并且重命名为 zoo.cfg第四步:
打开该配置文件(zoo.cfg)- dataDir=/tmp/zookeeper 临时数据的存储位置
这里是 linux 的目录结构,我们可以在 zookeeper 的解压路径下创建一个 tmp文件夹,然后在该目录下创建一个data 文件夹,用来存储临时数据
修改配置为: dataDir=../tmp/data 并保存配置文件即可 - clientPort=2181 这是zookeeper的端口号:2181
- dataDir=/tmp/zookeeper 临时数据的存储位置
第五步:
按第二步再次运行 bin 目录下的 zkServer.cmd1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30D:\Software\Dubbo\zookeeper-3.4.13\bin>zkServer.cmd
D:\Software\Dubbo\zookeeper-3.4.13\bin>call "C:\Program Files\Java\jdk1.8.0_131"\bin\java "-Dzookeeper.log.dir=D:\Software\Dubbo\zookeeper-3.4.13\bin\.." "-Dzookeeper.root.logger=INFO,CONSOLE" -cp "D:\Software\Dubbo\zookeeper-3.4.13\bin\..\build\classes;D:\Software\Dubbo\zookeeper-3.4.13\bin\..\build\lib\*;D:\Software\Dubbo\zookeeper-3.4.13\bin\..\*;D:\Software\Dubbo\zookeeper-3.4.13\bin\..\lib\*;D:\Software\Dubbo\zookeeper-3.4.13\bin\..\conf" org.apache.zookeeper.server.quorum.QuorumPeerMain "D:\Software\Dubbo\zookeeper-3.4.13\bin\..\conf\zoo.cfg"
2019-09-22 09:35:38,679 [myid:] - INFO [main:QuorumPeerConfig@136] - Reading configuration from: D:\Software\Dubbo\zookeeper-3.4.13\bin\..\conf\zoo.cfg
2019-09-22 09:35:38,708 [myid:] - INFO [main:DatadirCleanupManager@78] - autopurge.snapRetainCount set to 3
2019-09-22 09:35:38,709 [myid:] - INFO [main:DatadirCleanupManager@79] - autopurge.purgeInterval set to 0
2019-09-22 09:35:38,712 [myid:] - INFO [main:DatadirCleanupManager@101] - Purge task is not scheduled.
2019-09-22 09:35:38,722 [myid:] - WARN [main:QuorumPeerMain@116] - Either no config or no quorum defined in config, running in standalone mode
2019-09-22 09:35:38,959 [myid:] - INFO [main:QuorumPeerConfig@136] - Reading configuration from: D:\Software\Dubbo\zookeeper-3.4.13\bin\..\conf\zoo.cfg
2019-09-22 09:35:38,960 [myid:] - INFO [main:ZooKeeperServerMain@98] - Starting server
2019-09-22 09:35:43,545 [myid:] - INFO [main:Environment@100] - Server environment:zookeeper.version=3.4.13-2d71af4dbe22557fda74f9a9b4309b15a7487f03, built on 06/29/2018 04:05 GMT
2019-09-22 09:35:43,546 [myid:] - INFO [main:Environment@100] - Server environment:host.name=Gavino
2019-09-22 09:35:43,552 [myid:] - INFO [main:Environment@100] - Server environment:java.version=1.8.0_131
2019-09-22 09:35:43,556 [myid:] - INFO [main:Environment@100] - Server environment:java.vendor=Oracle Corporation
2019-09-22 09:35:43,559 [myid:] - INFO [main:Environment@100] - Server environment:java.home=C:\Program Files\Java\jdk1.8.0_131\jre
2019-09-22 09:35:43,567 [myid:] - INFO [main:Environment@100] - Server environment:java.class.path=D:\Software\Dubbo\zookeeper-3.4.13\bin\..\build\classes;D:\Software\Dubbo\zookeeper-3.4.13\bin\..\build\lib\*;D:\Software\Dubbo\zookeeper-3.4.13\bin\..\zookeeper-3.4.13.jar;D:\Software\Dubbo\zookeeper-3.4.13\bin\..\lib\audience-annotations-0.5.0.jar;D:\Software\Dubbo\zookeeper-3.4.13\bin\..\lib\jline-0.9.94.jar;D:\Software\Dubbo\zookeeper-3.4.13\bin\..\lib\log4j-1.2.17.jar;D:\Software\Dubbo\zookeeper-3.4.13\bin\..\lib\netty-3.10.6.Final.jar;D:\Software\Dubbo\zookeeper-3.4.13\bin\..\lib\slf4j-api-1.7.25.jar;D:\Software\Dubbo\zookeeper-3.4.13\bin\..\lib\slf4j-log4j12-1.7.25.jar;D:\Software\Dubbo\zookeeper-3.4.13\bin\..\conf
2019-09-22 09:35:43,569 [myid:] - INFO [main:Environment@100] - Server environment:java.library.path=C:\Program Files\Java\jdk1.8.0_131\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;";C:\Program Files\Java\jdk1.8.0_131\bin";D:\Software\UML\Rational\rose\common;D:\Common Tools\tools package\sublime text\Sublime Text 3;C:\Windows\system32\config\systemprofile\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;D:\Software\Maven\apache-maven-3.5.4\bin;D:\Software\Git\cmd;D:\Software\Compiler\tdm64-gcc-5.1.0\bin;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;D:\Software\Nodejs\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;D:\Software\py\Python\Python37\Scripts\;D:\Software\py\Python\Python37\;C:\Users\dell\AppData\Local\Microsoft\WindowsApps;C:\Users\dell\AppData\Roaming\npm;.
2019-09-22 09:35:43,573 [myid:] - INFO [main:Environment@100] - Server environment:java.io.tmpdir=C:\Users\dell\AppData\Local\Temp\
2019-09-22 09:35:43,586 [myid:] - INFO [main:Environment@100] - Server environment:java.compiler=<NA>
2019-09-22 09:35:43,591 [myid:] - INFO [main:Environment@100] - Server environment:os.name=Windows 10
2019-09-22 09:35:43,594 [myid:] - INFO [main:Environment@100] - Server environment:os.arch=amd64
2019-09-22 09:35:43,599 [myid:] - INFO [main:Environment@100] - Server environment:os.version=10.0
2019-09-22 09:35:43,604 [myid:] - INFO [main:Environment@100] - Server environment:user.name=dell
2019-09-22 09:35:43,604 [myid:] - INFO [main:Environment@100] - Server environment:user.home=C:\Users\dell
2019-09-22 09:35:43,608 [myid:] - INFO [main:Environment@100] - Server environment:user.dir=D:\Software\Dubbo\zookeeper-3.4.13\bin
2019-09-22 09:35:43,642 [myid:] - INFO [main:ZooKeeperServer@836] - tickTime set to 2000
2019-09-22 09:35:43,643 [myid:] - INFO [main:ZooKeeperServer@845] - minSessionTimeout set to -1
2019-09-22 09:35:43,646 [myid:] - INFO [main:ZooKeeperServer@854] - maxSessionTimeout set to -1
2019-09-22 09:35:44,195 [myid:] - INFO [main:ServerCnxnFactory@117] - Using org.apache.zookeeper.server.NIOServerCnxnFactory as server connection factory
2019-09-22 09:35:44,204 [myid:] - INFO [main:NIOServerCnxnFactory@89] - binding to port 0.0.0.0/0.0.0.0:2181
此时 zookeeper 正常启动起来了,端口为 2181,(binding to port 0.0.0.0/0.0.0.0:2181)
第六步:
测试
在 bin 目录下有个 zkCli.cmd, 使用它连接 zookeeper 服务器,1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27D:\Software\Dubbo\zookeeper-3.4.13\bin>zkCli.cmd
Connecting to localhost:2181
2019-09-22 09:42:23,193 [myid:] - INFO [main:Environment@100] - Client environment:zookeeper.version=3.4.13-2d71af4dbe22557fda74f9a9b4309b15a7487f03, built on 06/29/2018 04:05 GMT
2019-09-22 09:42:23,200 [myid:] - INFO [main:Environment@100] - Client environment:host.name=Gavino
2019-09-22 09:42:23,201 [myid:] - INFO [main:Environment@100] - Client environment:java.version=1.8.0_131
2019-09-22 09:42:23,207 [myid:] - INFO [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2019-09-22 09:42:23,208 [myid:] - INFO [main:Environment@100] - Client environment:java.home=C:\Program Files\Java\jdk1.8.0_131\jre
2019-09-22 09:42:23,208 [myid:] - INFO [main:Environment@100] - Client environment:java.class.path=D:\Software\Dubbo\zookeeper-3.4.13\bin\..\build\classes;D:\Software\Dubbo\zookeeper-3.4.13\bin\..\build\lib\*;D:\Software\Dubbo\zookeeper-3.4.13\bin\..\zookeeper-3.4.13.jar;D:\Software\Dubbo\zookeeper-3.4.13\bin\..\lib\audience-annotations-0.5.0.jar;D:\Software\Dubbo\zookeeper-3.4.13\bin\..\lib\jline-0.9.94.jar;D:\Software\Dubbo\zookeeper-3.4.13\bin\..\lib\log4j-1.2.17.jar;D:\Software\Dubbo\zookeeper-3.4.13\bin\..\lib\netty-3.10.6.Final.jar;D:\Software\Dubbo\zookeeper-3.4.13\bin\..\lib\slf4j-api-1.7.25.jar;D:\Software\Dubbo\zookeeper-3.4.13\bin\..\lib\slf4j-log4j12-1.7.25.jar;D:\Software\Dubbo\zookeeper-3.4.13\bin\..\conf
2019-09-22 09:42:23,209 [myid:] - INFO [main:Environment@100] - Client environment:java.library.path=C:\Program Files\Java\jdk1.8.0_131\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;";C:\Program Files\Java\jdk1.8.0_131\bin";D:\Software\UML\Rational\rose\common;D:\Common Tools\tools package\sublime text\Sublime Text 3;C:\Windows\system32\config\systemprofile\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;D:\Software\Maven\apache-maven-3.5.4\bin;D:\Software\Git\cmd;D:\Software\Compiler\tdm64-gcc-5.1.0\bin;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;D:\Software\Nodejs\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;D:\Software\py\Python\Python37\Scripts\;D:\Software\py\Python\Python37\;C:\Users\dell\AppData\Local\Microsoft\WindowsApps;C:\Users\dell\AppData\Roaming\npm;.
2019-09-22 09:42:23,210 [myid:] - INFO [main:Environment@100] - Client environment:java.io.tmpdir=C:\Users\dell\AppData\Local\Temp\
2019-09-22 09:42:23,217 [myid:] - INFO [main:Environment@100] - Client environment:java.compiler=<NA>
2019-09-22 09:42:23,219 [myid:] - INFO [main:Environment@100] - Client environment:os.name=Windows 10
2019-09-22 09:42:23,221 [myid:] - INFO [main:Environment@100] - Client environment:os.arch=amd64
2019-09-22 09:42:23,227 [myid:] - INFO [main:Environment@100] - Client environment:os.version=10.0
2019-09-22 09:42:23,229 [myid:] - INFO [main:Environment@100] - Client environment:user.name=dell
2019-09-22 09:42:23,237 [myid:] - INFO [main:Environment@100] - Client environment:user.home=C:\Users\dell
2019-09-22 09:42:23,240 [myid:] - INFO [main:Environment@100] - Client environment:user.dir=D:\Software\Dubbo\zookeeper-3.4.13\bin
2019-09-22 09:42:23,246 [myid:] - INFO [main:ZooKeeper@442] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@579bb367
Welcome to ZooKeeper!
2019-09-22 09:42:23,791 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1029] - Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)
2019-09-22 09:42:23,797 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@879] - Socket connection established to localhost/0:0:0:0:0:0:0:1:2181, initiating session
JLine support is enabled
[zk: localhost:2181(CONNECTING) 0] 2019-09-22 09:42:24,237 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1303] - Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x100039b26a10000, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null测试: 获取根节点下的值 get /
1
2
3
4
5
6
7
8
9
10
11
12
13
14WatchedEvent state:SyncConnected type:None path:null
get /
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x0
cversion = -1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1
[zk: localhost:2181(CONNECTED) 1]测试: ls /
1
2
3[zk: localhost:2181(CONNECTED) 2] ls /
[zookeeper]
[zk: localhost:2181(CONNECTED) 3]说明在根节点下有一个 zookeeper 节点
测试: 在根节点下创建一个临时节点 gavino , 值为 0119 create -e /gavino 0119
并且查看根目录节点 ls /
获取临时节点 gavino get /gavino1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18[zk: localhost:2181(CONNECTED) 3] create -e /gavino 0119
Created /gavino
[zk: localhost:2181(CONNECTED) 4] ls /
[zookeeper, gavino]
[zk: localhost:2181(CONNECTED) 5] get /gavino
0119
cZxid = 0x2
ctime = Sun Sep 22 09:55:55 CST 2019
mZxid = 0x2
mtime = Sun Sep 22 09:55:55 CST 2019
pZxid = 0x2
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x100039b26a10000
dataLength = 4
numChildren = 0
[zk: localhost:2181(CONNECTED) 6]
常用命令:(windows 下 cmd)
输入 zkServer.cmd 点击回车启动 zookeeper
建立节点 create /zk value
获得节点 get /zk
设置节点 set /zk value2
建立子节点 set /zk/subzk value3
输出节点目录 ls /zk
删除节点 delete /zk
关闭客户端 quit
关闭zookeeper服务 Ctrl+C, 选择Y 关闭服务
监控中心的安装
监控中心可以不安装,不影响使用,监控中心会提供可视化的操作
第一步: 安装管理控制台
先进入到 dubbo 的github 的项目地址(https://github.com/apache/dubbo)
在该页面往下找到
Dubbo ecosystem 下面的
Dubbo Admin - The reference implementation for Dubbo admin
点击进去下载该项目到本地
下载代码: git clone https://github.com/apache/dubbo-admin.git解压
在 dubbo-admin-server/src/main/resources/application.properties中指定注册中心地址1
2
3admin.registry.address=zookeeper://127.0.0.1:2181
admin.config-center=zookeeper://127.0.0.1:2181
admin.metadata-report.address=zookeeper://127.0.0.1:2181构建以及启动
在dubbo-admin-develop目录下:
构建
- mvn clean package
启动
- mvn –projects dubbo-admin-server spring-boot:run
或者 - cd dubbo-admin-distribution/target; java -jar dubbo-admin-0.1.jar
- mvn –projects dubbo-admin-server spring-boot:run

