)
demo 代码主要是参考网友的dubbo入门dubbo入门来的,也谢谢这位网友的分享。
在这篇入门中dubbo使用使用的2.6.5。
1.安装zookeepr
先下载zookeeper,目前最新版是3.5.4-beta,也可以点击以下链接下载想要的版本:链接
https://archive.apache.org/dist/zookeeper/
安装比较简单,直接解压启动即可。
解压后修改配置文件:
zookeeper-3.5.4-beta\conf\zoo_sample.cfg 重名成 zoo.cfg
启动:
windows环境:直接双击zkServer.cmd
linux环境:./zkServer.sh start
成功启动后占用端口: 8080, 2181
由于8080端口比较特殊。可能会被其他应用占用,也会导致其他应用使用此端口时使用不了。所以可以在启动前修改端口。
配置文件:zookeeper-3.5.4-beta\conf\zoo.cfg
在文件最后增加一行:
admin.serverPort=7777
我这里是7777端口,对我来说不会被占用。也可以改成别的。只要不给占用即可。
2.启动服务提供者
打开dubbo-parent/dubbo-service,检查配置文件:application.properties
端口:
server.port=9999
dubbo.protocol.port = 20880
由于我的zk直接是在本机上,所以地址都是127.0.0.1:2181
这是一个标准的spring-boot项目,所以直接启动DubboServiceApplication即可。出现以下表示启动成功
3.启动消费者
打开dubbo-parent/dubbo-consumer, 检查配置文件:application.properties
这是一个标准的spring-boot项目,所以直接启动DubboServiceApplication即可。出现以下表示启动成功
此时访问 http://localhost:9990/hello 结果如下:
4.实现负载均衡
如果想实现负载均衡,可以再启动一个service,
修改端口:不修改则无法启动,提示端口被占用。
server.port=9988
dubbo.protocol.port = 20881
此时访问 http://localhost:9990/hello 效果是快速刷新会发现2个端口交替使用。结果如下:
5.使用dubbo-admin查看
官方github地址:链接 (https://github.com/apache/incubator-dubbo-admin.git)
启动后端:
使用idea下载后,修改注册中心地址。
incubator-dubbo-admin\dubbo-admin-server\src\main\resources\application.properties
默认端口:8080
我这里由于是本地,所以直接127.0.0.1:2181,即默认配置,dubbo-admin是一个标准spring-boot项目,所以直接启动DubboAdminApplication即可
也可以通过命令行git clone下载,
mvn clean package -Dmaven.test.skip=true // 跳过测试,否则会很长时间
cd target
java -jar dubbo-admin-server-0.1.jar // 启动
启动前端:也可参考:链接
需要npm支持,也就是需要安装node.js。现在都是通过nvm管理,下载node,还需要安装git。具体方法可以参考官方文档 也可以参考网友提供的链接
我这里是通过git clone方式安装,因为直接使用官方提示方式,安装失败,提示git -c参数错误。
默认端口:8081,我这里修改为8083
cd dubbo-admin-ui // 进到dubbo-admin-ui目录
npm install // 安装依赖
npm run dev // dev模式启动
出现以下字样表示启动成功:
直接访问 http://192.168.88.11:8083 点击“服务查询”显示你的服务
至此,demo搭建完成。
查看元数据:
1. 使用dubbo2.7.0
2.配置dubbo.configcenter
现在最新dubbo-admin使用的都是dubbo2.7.0,只需要在application.properties中加
dubbo.configcenter=zookeeper://127.0.0.1:2181
3.在服务提供者配置
pom里也需要使用dubbo2.7.0配置,注意从2.7.0开始,包名都是org.apache.dubbo了,不再是com.alibaba.dubbo
在application.properties中加。我在demo里已经加了,所以可能可以直接看到元数据
dubbo.configcenter=zookeeper://127.0.0.1:2181
4.配置注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.metadata-report.address=zookeeper://127.0.0.1:2181
我知道有2种方法:
4.1. 在dubbo-admin
org.apache.dubbo.admin.config.ConfigCenter中增加init方法,主要是判断有没有配置,没有则新增:
@PostConstruct
public void init() throws Exception {
CuratorFramework zkClient = CuratorFrameworkFactory.builder().
connectString("127.0.0.1:2181").
retryPolicy(new ExponentialBackoffRetry(1000, 3)).build();
zkClient.start();
if (zkClient.checkExists().forPath("/dubbo/config/dubbo/dubbo.properties") == null) {
zkClient.create().creatingParentsIfNeeded().forPath("/dubbo/config/dubbo/dubbo.properties");
}
zkClient.setData().forPath("/dubbo/config/dubbo/dubbo.properties", ("dubbo.registry.address=zookeeper://127.0.0.1:2181\n" +
"dubbo.metadata-report.address=zookeeper://127.0.0.1:2181").getBytes());
}
4.2. 在dubbo-admin页面中配置
点击配置管理-创建,
名称输入global
内容:
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.metadata-report.address=zookeeper://127.0.0.1:2181
加了之后正常的话就可以看到元数据了。
看到方法名,参数,返回值类型。我这里没有参数所以是空的
注意:
有时需要注意mvn依赖,虽然没有报错,但是启动时始终提示xxx没有找到
此时就需要先进到mvn本地仓库找到相应的包,全部删除。重新依赖
依赖是否成功,可以在idea中打开pom.xml,按住ctrl+鼠标移动到包名称上(artifactId)看是否可以点击。如果可以点击表示依赖成功,否则依赖失败,需要删除重新依赖。
参考:[dubbo-parent](https://github.com/skyjilygao/dubbo-parent