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