1.Dubbo的两种开发思路
a.基于SOA思想
b.辅助SpringCloud框架提升效率
2.Dubbo的基本架构
3.Dubbo入门实践
a. 搭建注册中心
搭建Nacos
b.搭建监控中心
搭建dubbo-admin
1.通过git远程拉取
git clone https://github.com/apache/dubbo-admin.git
2.指定注册中心地址
在目录:
修改
dubbo-admin-server/src/main/resources/
application.properties
3.构建
mvn clean package -D maven.test.skip=true
4.启动
mvn --projects dubbo-admin-server spring-boot:run
或
cd dubbo-admin-distribution/target;
java -jar dubbo-admin-0.1.jar
5.访问
http://localhost:8080
c.代码开发
编写服务提供者和消费者完成远程调用
结合案例实现:
需求:使用Dubbo构建分布式架构,完成根据用户id查询用户信息
模型图:
步骤1:搭建服务提供者user-provider
1、创建提供者模块引入依赖
2、将 service ,mapper ,domain导入到提供者模块中
3、将UserService暴露为dubbo服务
4、application.yml 配置
知识扩充
服务提供者配置
dubbo.protocol.name=dubbo
dubbo.protocol.port=20881
服务消费者直接访问内置的Netty服务器,而Tomcat服务器用来支持应用运行启动的服务器。
步骤2:搭建服务消费者user-consumer
1、创建提供者模块并引入依赖
2、将controller,service接口导入到提供者模块中
3、在Controller中引入dubbo服务
4、application.yml 配置
4.Dubbo最佳实践(抽取公共接口模块)
通过上面服务的搭建,发现存在一些问题,每个模块还存在公共的接口、实体类。
解决方案:
将API接口抽取为独立模块,并且把接口有关的domian都放在模块中,在各个服务中通过依赖的方式调用。
5.Dubbo序列化接口(重点)
使用Dubbo开发时,传输对象时,必须将对象实现序列化接口
两个机器传输数据,在RPC通信时,往往采用二进制数据格式,故需要将对象进行序列化处理。
注意:Dubbo内部已经将序列化和反序列化的过程内部封装了,在定义domian类时实现 Serializable 接口即可
总结: