Dubbo基础
现在的网站规模在不断的扩大,常规的垂直应用结构已经无法应对,分布式架构就应运而生
发展演变:
dubbo官网的演变图
- 单一应用架构 所有功能写在一个工程,不利于维护,不能承受高流量访问压力
- 垂直应用架构 界面和业务逻辑没有实现分离,应用太过于独立,不利于之间交互
- 分布式服务架构 服务之间采用RPC调用,远程过程调用
- 流动计算架构 基于访问压力实时管理集群容量,提高集群的利用率
RPC框架:
- dubbo
- gRPC(google)
- Thrift (微软)
- HSF (阿里)
- JSF (京东)
dubbo学习
我们使用dubbo,首先我们进入官网,发现官网推荐我们使用zookeeper作为注册中心
所以,我们下载zookeeper,然后我们先在本地调试,步骤如下
- 首先我们下载好zookeeper,解压到本地,进入config文件夹,修改zoo_sample.cfg为zoo.cfg
- 我们打开zoo.cfg,找到 dataDir,修改地址,前提是我们已经创建好一个用于存放data的文件夹,修改为 创建好的data文件夹地址
- 进入bin目录,然后分别先后点击 zkServer.cmd ,zkCli.cmd (注:我们是在window环境下的原因,才点击这两个)
启动完成
在dubbo启动成功前提下,我们可以安装启动zookeeper的管理控制台
- 首先我们去github下载,然后加压
- 然后进入dubbo-admin\src\main\resources文件夹下,找到application.properties,查看dubbo.registry.address是否正确
- 然后进入cmd执行mvn-clean,打包得到jar包,java-jar jar包,默认端口7001,然后访问结果,默认用户名和密码都是root
dubbo2.6版本以前我们需要zookeeper作为注册中心,我们需要引入zkclient
dubbo2.6版本以后我们需要zookeeper作为注册中心,我们需要引入curator
代码基本入门
首先我们引入依赖(服务提供者)
1 |
|
服务的消费者提供服务的provider.xml
1 |
|
dubbo官方建议我们应该把公共类以及接口放在一个新的工程中
然后运行
1 | public class MainApplication { |
在dubbo管理中心展示
接下来我们完成服务消费者
服务消费者的maven依赖和服务提供者的相同
然后我们创建consumer.xml
1 |
|
然后执行结束
1 | public class MainApplication { |
最终dubbo管理中心显示
构建简单的控制中心dubbo-monitor-simple
首先我们使用mvn package构建Jar包,然后target中会有一个dubbo-monitor-simple-2.0.0-assembly.tar.gz,然后我们解压它,
进入配置文件conf文件下,看看dubbo.properties中配置是否正确,然后进入assembly.bin文件夹后,点击start.sh启动
启动后,那么怎么和服务关联在一起呢
根据dubbo官网的描述,我们需要使用1
<dubbo:monitor protocol="registry"></dubbo:monitor>
分别配置服务器端和消费端,然后分别重启,或在监控中心看到