tjxt第三天

本文描述了一个项目如何通过网关进行参数校验,使用JWT管理用户信息,并介绍了微服务架构中的UserContext和HandlerInterceptor。同时,详述了一个基于问题和回复的问答系统设计,包括表结构、字段和MongoDB的选择理由以减轻MySQL压力。
摘要由CSDN通过智能技术生成

3-1 你们的项目是如何进行参数校验的
总流程为网关拦截请求,解析token,把用户信息放入请求头,对应微服务从请求头获取用户信息。
天机学堂是基于JWT实现登录的,获取当前登录用户,解析其中的token即可。
每个微服务都可能需要登录用户信息,因此把token解析的行为放到了网关中,然后由网关把用户信息放入请求头,传递给下游微服务
每个微服务要从请求头拿出用户信息,所以定义了一个HandlerInterceptor,拦截进入微服务的请求,并获取用户信息,存入UserContext
具体代码:tj-auth-resource-sdk服务/UserInfoInterceptor ,需要获取用户信息的服务都依赖了 tj-auth-resource-sdk 服务

3-2 详细说一下你们的问答系统用到了几张表,表中的主要字段有哪些,表关系是什么
两张表,问题表和回复表。
问题表存储问题的基础信息,主要字段是所属的课程,提问学员等。
回复表(既包含回答,又包含评论),回答表有4个主要字段,分别是主键id、目标问题id、目标回答id、目标评论id。区分回答还是评论的根本在于该条回复记录是否有回答id,没有回答id的是回答,有回答id的是评论。
问题表和回复表的关系是一对多,一条问题可以对应多条回答。
回复表自己对自己有一个自查询的关系。

3-3 你们为什么用Mongo, 而不用MySQL存储问题和评论
Mongo适合存储数据量大,相对价值不高的数据,为了减少MySQL数据库的压力,推荐采用Mongo存储问题和评论

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值