常用业务流程梳理Day1

发布时间:2024年01月16日

1-1 请说一下你项目中是如何进行项目管理和发布的

????????通过Git私服Gogs对代码托管,并通过jenkins进行持续集成及发布。

????????首先从Gogs中拉取最新代码,剪分支并处理完成代码后进行提交,当完成一个功能后,切回主分支,合并并推送。

????????当开始推送时,Gogs接到请求,会把消息通知给jenkins。其添加了所有部署脚本和 Git 钩子(拉取Gogs中的代码,并重新进行编译),代码推送会自动编译,可以根据需求手动部署。

????????最后,在jenkins中找到完成功能的微服务对应任务重新执行一次就完成发布了。

1-2 现在浏览器点击按钮出现了一个报错,如何定位发生问题的代码

????????首先F12查看该指令下浏览器控制台请求包含的具体信息,之后根据路径信息定位到nginx,再通过nginx的配置找到其反向代理的端口号,通过端口号找到docker中对应的微服务项,通常是网关。

????????接下来根据本地代码中网关的配置文件找到路径信息中对应的微服务名,再去Nacos中找到对应的微服务及其端口信息。在本地代码中找到对应微服务的controller,再根据请求信息中的方法名找到对应的功能,顺着找到对应的serviceImpl服务,通过打断点,Debug的方式排查出错误。通过这些措施可以大大提高我们排查bug的效率。

1-3 你项目中进行用户的登录和检验的详细流程是怎样的

????????首先登陆涉及到用户微服务以及网关微服务。

????????当用户输入用户名密码发出登陆指令后,请求会首先发送到nginx再反向代理到对应网关,由网关过滤器进行判断,如果是登录,则通过路径匹配将请求路由到用户微服务,之后再通过数据库进行用户名和密码的校验。

????????在用户登录成功后,后台管理微服务签发JWT TOKEN信息返回给用户,然后后面用户每次发送请求,都会携带着这个token。

????????用户再次进入网关开始访问,网关过滤器接收用户携带的TOKEN 并进行解析 ,校验token的合法性判断是否有权限,如果有,则放行,如果没有则返回未认证错误。

1-4 说一下文章发布的流程

????????首先文章发布在我的项目中涉及了媒资微服务和文章微服务,并且涉及到了四张表,分别是媒资微服务的文章表,文章图片表以及他们的中间表。文章微服务的文章表,文章内容表。

????????当浏览器发送一个审核或存入草稿的请求时,会先发给nginx,nginx接到请求会反向代理到网关,网关接到请求会从注册中心找到媒资微服务,并发给媒资微服务。

????????保存和修改文章时,需要同时保存文章中的图片id到中间表,如果是修改的话, 还需要根据文章id提前删除中间表的数据(是草稿的话,不做中间表保存)。

????????自媒体端发布文章后,开始审核文章,审核的主要是文章的内容(文本内容和图片)。借助第三方阿里云提供的接口审核图片,图片存储到minIO中,在没有部署外网可以访问的域名情况下需要先下载才能审核。如果审核成功,则需要在文章微服务中创建app端需要的文章,如果审核失败,则需要修改自媒体文章的状态并转到人工审核。

????????根据发布时间调整审核状态,发布时间如果是在当前时间之前,审核状态就改为审核通过,通过feign远程调用文章微服务的新增方法对文章微服务文章表和文章内容插入或修改数据,并将文章id返回动态修改到媒资微服务文章表中。此外,发布时间如果是在当前时间之后,我使用的是Redisson作延迟队列实现的。

文章来源:https://blog.csdn.net/weixin_52418241/article/details/135562618
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。