如何准备好建立逐字稿02

简介: 团队通过代码规范插件、CodeReview和单元测试保障代码质量,采用Jenkins实现CI/CD,结合Linux、Docker部署,利用ELK、SkyWalking等工具进行链路追踪与故障排查,具备完善的线上问题应对机制。

场景题

你们团队怎么做代码质量管控的

  • 我们自己会做代码质量检测,比如Idea里的阿里巴巴规范插件、SonarLint、PMD
  • 也会有内部的CodeReview(代码评审会议),大家交叉验证,保障代码的健壮性和拓展性
  • 同时我们也会借助于Junit和Mockito做单元测试,保障测试覆盖率在90%以上

你们公司怎么部署代码的?

  • 不要直接说:java -jar order.jar,用shell脚本

你们怎么排查错误

用过鉴权框架吗?实现的原理大概说一下?

  • 面试官,常见的一些鉴权框架比如Shiro、Security、还有自定义RBAC模型都用过一些,相对来说前两者还是比较复杂的,我给您说一下Security的原理吧/说一下RBAC底层/领域模型(就是数据库表)吧
  • Security:他就是在用户请求之后,经过SpringMVC的DispatcherServerlet,找到对应的HandlerMapping之后的Handler(controller)之后,我们会在方法上追加一个注解@PreAuthorize("@ss.hasPermi('elder:bed:list')" ,此时Security会自动进入自己的过滤器
  • 首先判断访问的路径是不是在白名单印象,在里面就直接方向
  • 不在里面就根据用户的id,去底层RBAC模型查找这个用户对应的角色、菜单,返回一个菜单列表,有则放行并生成JWT信息存储在session里,没有则返回HTTP 401权限不足
  • RBAC:参照下图说出自己的理解即可
  • 面试官,RBAC模型就是经典的用户、角色、资源三张主表,同时增加用户-角色、角色-资源两张中间表,用来记录哪个用户有哪些角色,每个角色有哪些资源;当然在此基础之上,也可以增加部门的,也都是一样的原理,我就不重复赘述

你们怎么发布项目的?

我们的话通过jenkens进行发布,实现CI/CD,但是之前的话哦我们也是有用过linux和docker进行发布过,像linux的话我们是先将jar包上传到服务器指定目录,然后停止旧服务,然后替换旧文件,修改配置,然后启动jar包,docker的话就是首先通过编写Dockerfile构建镜像,然后进行docker push推送仓库,再停止旧容器,启动新容器

发布失败你们遇到了吗?怎么处理的?


关联的下游服务版本回退,怎么处理的?

你们遇到CPU飙高怎么解决的

问题主要有缓存失效 / 击穿,慢SQL,MQ的消息积压

线上故障怎么排查

线上故障遇到过哪些

空指针、sql语句、OOM

线上故障怎么处理

Skywaking如何进行链路追踪

SkyWalking 遵循分布式追踪的通用模型,通过以下核心概念标识和串联调用链路:

分布式追踪核心:Trace Span TraceID SpanID

  • Trace:表示一个完整的分布式事务链路,由多个相关联的 Span 组成。例如,用户发起一个下单请求,从前端到后端服务、数据库、缓存等所有参与的调用过程,共同构成一个 Trace
  • Span:表示链路中的一个具体操作(如一次服务调用、一次数据库查询等),是追踪的基本单位。每个 Span 包含以下关键信息:
  • TraceID:全局唯一标识,用于关联同一个 Trace 中的所有 Span(即整个链路)。
  • SpanID:当前 Span 的唯一标识,用于区分链路中的不同操作。
  • ParentSpanID:父 Span 的 ID,用于建立 Span 之间的层级关系(如调用方与被调用方的关系)。
  • 操作名称(如服务接口名、数据库方法名)、时间戳(开始 / 结束时间)、耗时、标签(如服务地址、错误信息)等。

通过 TraceIDParentSpanID,SkyWalking 可以将分布式系统中分散的 Span 串联起来,还原出完整的调用链路。

让你来设计高并发系统,你会怎么设计

主要是并发读和并发写嘛,在读方面的话我们可以采用缓存的方式,比如前端采用CDN和freamaker,后端采用redis来缓存,然后在写方面用MQ或者xxl-job来实现异步,削封填谷

相关文章
|
13天前
|
数据采集 人工智能 安全
|
8天前
|
编解码 人工智能 自然语言处理
⚽阿里云百炼通义万相 2.6 视频生成玩法手册
通义万相Wan 2.6是全球首个支持角色扮演的AI视频生成模型,可基于参考视频形象与音色生成多角色合拍、多镜头叙事的15秒长视频,实现声画同步、智能分镜,适用于影视创作、营销展示等场景。
642 4
|
8天前
|
机器学习/深度学习 人工智能 前端开发
构建AI智能体:七十、小树成林,聚沙成塔:随机森林与大模型的协同进化
随机森林是一种基于决策树的集成学习算法,通过构建多棵决策树并结合它们的预测结果来提高准确性和稳定性。其核心思想包括两个随机性:Bootstrap采样(每棵树使用不同的训练子集)和特征随机选择(每棵树分裂时只考虑部分特征)。这种方法能有效处理大规模高维数据,避免过拟合,并评估特征重要性。随机森林的超参数如树的数量、最大深度等可通过网格搜索优化。该算法兼具强大预测能力和工程化优势,是机器学习中的常用基础模型。
348 164
|
7天前
|
机器学习/深度学习 自然语言处理 机器人
阿里云百炼大模型赋能|打造企业级电话智能体与智能呼叫中心完整方案
畅信达基于阿里云百炼大模型推出MVB2000V5智能呼叫中心方案,融合LLM与MRCP+WebSocket技术,实现语音识别率超95%、低延迟交互。通过电话智能体与座席助手协同,自动化处理80%咨询,降本增效显著,适配金融、电商、医疗等多行业场景。
359 155

热门文章

最新文章