现在 java 系技术栈的公司中,对 dubbo 框架的应用很广泛, 所以很有必要学习一下相关知识.
Dubbo 官网
https://dubbo.apache.org/zh/docs/
rpc、dubbo 基础知识
https://juejin.cn/post/6870276943448080392
学习资料
本文是参考尚硅谷的视频课程学习搭建的,课程链接:
分为 4 个部分: zookeeper(服务注册中心) + 服务生产者 + 服务消费者 + 服务监控中心
代码仓库地址: https://gitee.com/pangHuPerfect/java-dubbo/tree/master
git clone git@gitee.com:pangHuPerfect/java-dubbo.git
zookeeper 版本推荐 3.4.6(一开始用的 zookeeper-3.7.0 版本,踩坑了很久)
首先推荐从本人的代码仓库中获取安装包,代码仓库地址上面有介绍, 安装包在 software 目录里面
搭建 zookeeper
解压压缩包
tar zxvf zookeeper-3.4.6.tar.gz
vim zoo.cfg
配置项中主要修改图中的 2 个地方:
第 1 个是 zookeeper 的数据存储目录, 第 2 个是 zookeeper 服务监听的端口
去解压缩后的 bin 目录下,有个 zkServer.sh 文件, 运行命令为:
./zkServer.sh start /home/hwytest/software/zookeeper-3.4.6/conf/zoo.cfg
查看 zookeeper 的运行状态
./zkServer.sh status /home/hwytest/software/zookeeper-3.4.6/conf/zoo.cfg
进入 zookeeper 的 shell 模式
以下命令在软件解压缩后的 bin 目录下执行
./zkCli.sh 连接本机
./zkCli.sh -server 127.0.0.1:2181
将ip换成其它zookeeper地址,即可远程连接
zookeeper 操作的相关帖子
https://blog.csdn.net/weixin_43559950/article/details/118893289
本文中的生产者: 订单服务, 消费者: 用户服务.
目标是 "订单服务" 通过 dubbo 远程调用 "用户服务"
有 2 种方式: 直接运行代码 和 jar 包运行
//运行生产者, 服务占用端口为8080
nohup java -jar springboot-user-service-provider.jar >/dev/null 2>&1 &
//运行消费者, 服务占用端口为8081
nohup java -jar springboot-order-service-consumer.jar >/dev/null 2>&1 &
介绍下小技巧: 如何在 idea 中同时导入多个项目, 如下图所示, 连续导入 3 个项目即可
参考帖子: ttp://t.zoukankan.com/lyh233-p-12741884.html
java -jar dubbo-admin.jar
或者
nohup java -jar dubbo-admin.jar >/dev/null 2>&1 &
分别启动上面的 提供者服务 和 消费者服务, 可以看到下图, 显示有 1 个提供者 + 1 个消费者
到此为止, 我们已经成功搭建好了一个 dubbo 服务了, 哈哈哈!
如果觉得本篇文章对你有帮助, 希望可以给我的代码仓库点个 star
后续会更新一下 dubbo 服务的相关测试方法等, 敬请期待~