1 . dubbo是什么
dubbo是服务调用,可以代替feign controller调用service
2. dubbo架构


3. dubbo基本使用
3.1 服务提供者
1. 导依赖
1 2 3 4 5 6 7 8 9 10 11 12 13
| <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.7.8</version> </dependency>
<dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-registry-nacos</artifactId> <version>2.7.8</version> </dependency>
|
2. 写yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| server: port: 18081 spring: datasource: url: jdbc:mysql://localhost:3306/dubbo-demo?useSSL=false username: root password: root driver-class-name: com.mysql.jdbc.Driver application: name: user-provider logging: level: cn.itcast: debug pattern: dateformat: HH:mm:ss:SSS dubbo: protocol: name: dubbo port: 20881 registry: address: nacos://127.0.0.1:8848 scan: base-packages: cn.itcast.user.service
|
3.改注解
1 2 3 4 5
| 在service实现类的@servcie注解改为@DubboService注解 把这个service不在交割spring管理,而是交给dubbo管理 @DubboService public class UserServiceImpl implements UserService
|
3.2 服务消费者
1.导依赖
1 2 3 4 5 6 7 8 9 10 11 12 13
| <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.7.8</version> </dependency>
<dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-registry-nacos</artifactId> <version>2.7.8</version> </dependency>
|
2.写yml
提供者不需要
1 2 3 4 5
| dubbo: protocol: name: dubbo port: 20881
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| server: port: 18080 spring: application: name: user-consumer logging: level: cn.itcast: debug pattern: dateformat: HH:mm:ss:SSS dubbo: registry: address: nacos://127.0.0.1:8848
|
3.改注解
1 2 3 4 5
| @Autowired改为@DubboReference
@DubboReference private UserService userService;
|
1 2 3
| dubbo不能请求发对象,如果想法对象必须实现序列化 public class User implements Serializable {}
|
3.3启动检查
1 2 3 4 5 6
| dubbo: registry: address: nacos: consumer: check: false
|
3.4超时与重试
1 2 3 4 5
| dubbo: consumer: timeout: 3000 retries: 0
|
3.5多版本

1.技术选型
前端:
flutter + android + 环信SDK + redux + shared_preferences + connectivity + iconfont + webview + sqflite
管理端:
vue
后端:
Spring Boot + SpringMVC + Mybatis + MybatisPlus + Dubbo
Elasticsearch geo 实现地理位置查询
MongoDB 实现海量数据的存储
Redis 数据的缓存
Spark + MLlib 实现智能推荐
第三方服务 环信即时通讯
第三方服务 阿里云 OSS 、 短信服务
第三方服务 虹软开放平台 / 阿里云

2.技术解决方案
使用Elasticsearch geo实现附近的人的解决方案
使用Spark + Mllib实现智能推荐的解决方案
使用MongoDB进行海量数据的存储的解决方案
使用采用分布式文件系统存储小视频数据的解决方案
使用百度人脸识别的解决方案
使用阿里云进行短信验证码发送的解决方案
2、前后端分离
2.1、前后端分离的概述
项目基于前后端分离的架构进行开发,前后端分离架构总体上包括前端和服务端,通常是多人协作开发
前后端分离开发基于HTTP+JSON交互
通过接口文档(API文档)定义规范
前后端按照文档定义请求及响应数据

2.2、YAPI介绍
YAPI已经在linux虚拟机中准备好了
请求地址:http://192.168.136.160:3000/
用户名/密码:tanhua@itcast.cn/123456
对于接口的定义我们采用YApi进行管理,YApi是一个开源的接口定义、管理、提供mock数据的管理平台。
mock数据,YApi提供了mock功能,就是模拟服务端返回测试数据: