# 猫眼分布式 **Repository Path**: yintingting/cat_eye_distribution ## Basic Information - **Project Name**: 猫眼分布式 - **Description**: 猫眼项目 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2019-01-02 - **Last Updated**: 2024-06-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 1. 复制guns-rest为 guns-gateway dubbo相关 2. 各个项目的interface提出来,放到一个模块: 复制guns-core为 guns-api 存放接口 3. 用户模块 - 建表语句 - 用户API文档 - 复制guns-gateway为guns-user - 修改配置文件 rest: auth-open: false #jwt鉴权机制是否开启(true或者false) sign-open: false #签名机制是否开启(true或false) 访问接口:http://localhost:8099/auth?userName=admin&password=admin 4. springboot配置忽略列表 5. 基于业务的用户API修改 6. 修改JWT申请的返回报文 7. ThreadLocal保存用户信息 8. 测试/auth和/hello http://localhost:8099/auth?userName=admin&password=admin localhost:8099/hello : 带上header 9. 用户dao代码生成器 test目录下的generator 10. 用户退出 - 前端存储7天JWT.问题:JWT的刷新,比如用户修改密码了 - 服务器端会存储活动用户信息【30分钟】 - JWT里的UserId为key,查找活跃用户 - 退出: 1. 前端删除掉JWT 2. 后端服务器删除活跃用户 11. 验证url忽略 ignore-url: /user/register,/user/check localhost:8099/user/check 12. 存在的问题 - 必须先启动服务提供者 ```$xslt 启动检查:(不建议,因为可能会忘启动某个) 服务启动过程中验证服务提供者的可用性 验证过程出现问题,则阻止整个Spring容器初始化 服务启动检查可以尽可能早的发现服务问题 ``` - 用户模块部署多台,消费者(比如网关)如何调用 常用: 1. 随机 spring dubbo项目,复制三个provider,三个配置文件 启动观察,是随机调用的 2. 轮询 项目中一般配置在provider,这里配置在userService 3. 最小活跃调用 - protocal 13. dubbo为什么比cloud快? dubbo的底层协议是tcp cloud的底层协议是http 14.rmi代替dubbo协议配置 protocal: name: rmi port: 20881 15. 服务聚合 - 将多个服务调用封装 - 可以简化前端调用方式 - 提供更好的安全性、可扩展性 16. copy guns-user为guns-film - film首页需要请求6个接口 API网关:功能聚合 好处: 1. 6个接口,一次请求,同一时刻节省了5次http请求 2. 同一个接口对外暴露,降低了前后端分离的难度和复杂度 坏处: 1. 一次获取数据过多,容易出现问题