一、什么是Dubbo?
Dubbo是阿里巴巴推出的一款分布式服务治理框架
Dubbo的作用
1)单体架构项目
单体架构就是指所有的业务代码和静态资源全部放到一个工程中,然后部署到tomcat服务器上
缺陷:
单体架构中某个模块出现问题,可能导致服务器资源溢出,从而影响别的业务正常运行。
单体架构在互联网模式下,不能很好的处理高并发
单体架构的拓展方案 - 行向拓展(集群):
缺陷:服务的横向拓展不能划分重要模块和次要模块,相对会浪费服务器的资源
2)分布式架构
优点:
降低了模块和模块之间的耦合,某个模块出现问题,其他模块是可以继续运行
模块划分后,可以根据模块的热门程度,合理的进行横向拓展(集群)
缺点:
模块和模块不可能完全无联系,分布式架构肯定会设计到模块之间的通讯,有可能会照成代码的冗余。
3)rpc架构
缺陷:
当前表现成直接调用服务层,从而导致表现层和服务层的调用关系错综复杂,难以进行维护。
4)SOA面向服务的架构体系
集群:就是对一个服务的横向拓展,将一个服务复制很多份,分别部署在不同的服务器上,共同对外提供服务。
分布式:将一个完整的功能,按照不同的业务,划分成很多小的功能模块,分别部署在不同的服务器上。
二、Dubbo的工作原理
三、注册中心的安装 - zookeeper
zookeeper是一个纯java编写的一个分布式一致性协调服务
安装jdk
1)rpm包的方式安装jdk
卸载:
2)源码包的方式安装jdk
解压:
改名:
配置环境变量:
生效环境变量:
source /etc/profile
安装zookeeper
解压zookeeper的压缩包
进入解压包,并且创建一个文件夹
修改配置文件
启动zookeeper服务
验证是否启动成功:
ps -aux | grep zookeeper - 查看zookeeper的进程是否启动
杀死进程
kill [-9] pid
四、安装Dubbo的监控中心
安装jdk
安装tomcat
解压
进入解压文件夹,启动tomcat
配置防火墙端口,开发8080,让远程连接:
vim /etc/sysconfig/iptables
添加8080端口的开放
重启防火墙
service iptables restart
安装监控中心
监控中心就是一个web工程
将这个web工程丢到tomcat的webapps中,重启tomcat即可
启动的结果:
注意:
· 如果tomcat中配置了监控中心,则tomcat启动会变得非常的慢,可以去./logs查看启动日志
· 查看日志的命令:tail -f xxxxx
· 在启动监控中心之前,一定要启动zookeeper,如果没有启动zookeeper,监控中心会卡死,导致tomcat起不来
五、SpringBoot如何整合Dubbo - 实现服务的注册和发现
服务提供者的搭建步骤:
1、添加dubbo和SpringBoot的整合依赖包
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>
2、配置application.yml
3、将服务注册到注册中心上
4、配置Dubbo的包扫描
服务的消费者的搭建步骤:
1、添加dubbo和SpringBoot的整合依赖包
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>
2、配置application.yml
3、发现并且消费服务
改进:将提供者和消费者的公共接口抽取到一个jar工程中
总结:
六、Dubbo实战 - 学生管理系统