1-1 请说一下你项目中是如何进行项目管理和发布的
我们项目使用的是gogs实现代码的管理,Jenkins进行自动的运维发布
首先我们会在gogs里面创建一个空间把代码拉到本地来是跟gogs同步的;
然后当我们的代码开发或者开发完毕之后我们会进行提交;
之后gogs接到代码的提交之后会通知Jenkins;
最后Jenkins会拉取gogs里面的代码,通过写好的脚本进行清理或者打包,还会根据脚本生成镜像和容器。
1-2 现在浏览器点击按钮出现了一个报错,如何定位发生问题的代码
首先我们先搞清楚项目的流程,通过打断点的方式排查报错
然后通过前端点击f12找到对应的接口;
之后请求是通过nginx转给网关然后根据网关的配置项找到所对应的微服务;
最后在找到对应的方法,在该方法上打断点排错。
1-3 你得项目中进行用户的登录和检验的详细流程是怎样的
登录:
- 客户端通过用户界面输入用户名和密码,发送登录请求到身份认证微服务。
- 身份认证微服务对用户名和密码进行验证。
- 验证成功后,身份认证微服务生成一个包含用户信息的令牌(如JWT),并返回给客户端。
- 客户端保存该令牌,后续的请求会携带该令牌用于身份验证。
校验:
- 当客户端发送请求到其他微服务时,在请求中携带之前获得的令牌。
- 目标微服务接收到请求后,通过令牌解析出用户信息,并进行校验令牌的有效性和真实性。
- 最后网关过滤器解析TOKEN,判断是否有权限,如果有,则放行,如果没有则返回未认证错误
1-4 说一下文章发布的流程
首先文章的发布这个功能是为新增,修改,保存草稿三个功能的共有方法,根据参数中是否具有id来确认是新增还是修改,根据参数中的状态来确认是否是草稿;
然后保存和修改文章时,需要同时保存文章中的图片id到中间表,如果是修改的话,还需要根据文章id提前删除中间表数据如果是草稿的话,不做中间表的保存
最后封面图片如果选择自动,需要从内容中提取,规则为:内容中没有图片,则为无图;图片数量是0-2则为单图(截取第一张),图片数量>3则为多图(截取3张)