应用Dubbo框架打造仿猫眼项目(一) 用户模块开发

章节概要

1.学会API网关权限验证和其他服务交互(用户服务)

2.学会开发开发springboot自定义配置

3.学会Dubbo负载均衡策略选择和使用

主要内容

一、修改GUS中的JWT模块

1.增加忽略URL配置

2.修改返回内容匹配业务

3.增加ThreadLocal的用户信息保存

二、业务功能开发

1.增加用户服务并提供接口

2.初步了解API网关与服务间的交互过程

3.根据接口文档开发用户接口

具体开发

1.建用户表

DROP TABLE IF EXISTS mooc_user_t;
CREATE TABLE mooc_user_t(
   UUID INT PRIMARY KEY AUTO_INCREMENT COMMENT '主键编号',
   user_name VARCHAR(50) COMMENT '用户账号',
   user_pwd VARCHAR(50) COMMENT '用户密码',
   nick_name VARCHAR(50) COMMENT '用户昵称',
   user_sex INT COMMENT '用户性别 0-男,1-女',
   birthday VARCHAR(50) COMMENT '出生日期',
   email VARCHAR(50) COMMENT '用户邮箱',
   user_phone VARCHAR(50) COMMENT '用户手机号',
   address VARCHAR(50) COMMENT '用户住址',
   head_url VARCHAR(50) COMMENT '头像URL',
   biography VARCHAR(200) COMMENT '个人介绍',
   life_state INT COMMENT '生活状态 0-单身,1-热恋中,2-已婚,3-为人父母',
   begin_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
   update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间'
) COMMENT '用户表' ENGINE = INNODB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;

insert into mooc_user_t(user_name,user_pwd,nick_name,user_sex,birthday,email,user_phone,address,head_url,life_state,biography) values('admin','0192023a7bbd73250516f069df18b500','隔壁泰山',0,'2018-07-31','admin@mooc.com','13888888888','北京市海淀区朝阳北路中南海国宾馆','films/img/head-img.jpg',0,'没有合适的伞,我宁可淋着雨');
insert into mooc_user_t(user_name,user_pwd,nick_name,user_sex,birthday,email,user_phone,address,head_url,life_state,biography) values('jiangzh','5e2de6bd1c9b50f6e27d4e55da43b917','阿里郎',0,'2018-08-20','jiangzh@mooc.com','13866666666','北京市朝阳区大望路万达广场','films/img/head-img.jpg',1,'我喜欢隔壁泰山');

2.测试API网关与服务间的交互过程

 1)复制出一个guns-user模块(修改模块名称相关配置),修改application.yml中相关属性(修改启动端口,关闭jwt验证,增加dubbo地址)

 2)user模块中实现UserApi中的方法,启动zookeeper,启动user模块

 3)gateway模块中在authController中调用userApi的方法,看看user中是否有打印

3.gateway配置忽略列表

1)JwtProperties类、application.yml 增加忽略配置属性ignore-url

2) AuthFilter 增加忽略列表代码

4.基于用户业务的API功能修改,补全登录、注册、修改、获取等接口

5.去掉guns自身携带的用户名密码验证机制,使用UserAPI登录接口,修改jwt返回里包含userid信息,修改返回类型vo

6.增加ThreadLocal保存用户信息,当做session使用

7.user项目,用户模块开发,dao生成,服务开发

8.gateway项目,用户接口开发

9.用户相关接口测试

10.dubbo启动性检查 check=false(开发时可用,线上不建议)

11.dubbo负载均衡 

原文地址:https://www.cnblogs.com/yyh19890221/p/10697435.html