day01

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

项目管理:

项目代码使用GOGS进行管理;

每天从GOGS中拉取最新的代码,剪分支,代码完成后Commit,然后切分支,合并,再Push;

项目发布:

项目发布使用Jenkins对代码进行集成和发布;

当代码推送到GOGS后,GOGS会把消息发给Jenkins,Jenkins就会拉取GOGS的代码,重新编译;

然后在Jenkins中重新执行任务,完成发布;

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

有两种常用方法:

首先是看报错,根据报错提示的内容去找代码,看看什么位置出问题会报这个错误,继而打断点进行测试,但是这样有一定限制,如果是前端做的报错,那这样就不好查了.

先看请求发送给哪个服务器,然后根据映射文件hosts,去其中找对应的地址和端口,如果端口没有写默认是80端口的nginx,然后看nginx的配置,找到转接的地址,然后看nginx的docker中对比端口号,然后根据端口号找微服务(通常是网关),然后根据网关中的配置文件去找对应的微服务,定位出问题的方法,然后打断点

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

非空判断:

先对用户名和密码进行非空判断,如果结果为空,返回错误信息;

比对账号密码:

并查询用户名是否存在,如果不存在,返回错误信息;

如果用户名存在,比较加密后的密码和数据库中的密码是否一致,如不一致,返回错误信息;

生成Token:

确认无误后,用非敏感信息制作Token并返回;

校验Token:

前端把Token放入请求头中保存起来,用来正常访问;后端要调用拦截器对Token进行校验,如果校验失败,返回错误信息;

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

文章发布大概分为以下几个流程:

判断操作:

首先要根据前端传来的信息判断是要新增文章还是修改文章。如果前端传来的信息中没有文章的主键,那么就是要新增文章;如果前端传回了文章的主键,那么就是修改文章.

如果是修改文章,则会先删除该文章在相关数据库表中已有的基本信息,比如素材图片等,然后再进行修改操作。这里的“修改”实际上是通过“新增”的方式来实现的,即重新添加文章的信息来覆盖旧的信息。

草稿处理:

判断新增修改后,则要判断是否为草稿;

如果为草稿,保存文章到数据库,不进行后续的发布处理

如果不为草稿,那么保存图片和文章中间表关系

发布时间:

文章发布时可以选择当即发布,也可以定时发布;

如果选择定时发布,就要通过Redission来实现,当设置了发布时间的文章被提交的时候,任务会加入到Redission的ZSet集合中,一旦到达发布时间,任务会从ZSet中移除非,并放入阻塞队列等待被消费

审核流程:

首先要对发布文章的内容进行审核,图片,文章,标题等;

其次是调用第三方审核工具,比如阿里云,华为云进行审核;

对于审核结果有以下几种类型:

如果审核未通过,则直接修改文章状态为审核失败状态并返回,前端提示修改;

需要人工审核介入,修改文章状态为人工审核状态并返回,前端进行提示;

审核成功,那就调用文章微服务保存文章,图片存入Minio,然后文章存入mysql,并同步到es中

  • 13
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值