第33周JavaSpringCloud微服务 口试题

打印 上一主题 下一主题

主题 1607|帖子 1607|积分 4821


一、项目口试

口试中先容项目的方法

在口试过程中,若被问及相关项目,为提升通过几率,应偏重先容项目的功能点和架构升级内容。确保将项目的亮点讲透讲精彩,这对获取 offer 至关紧张。
1. 项目架构

项目团体架构概述

项目团体架构由多个层次构成:


  • 系统入口层 :分为 C 端(前台)供顾客利用和 B 端(后台)供管理员利用。
  • 接入层 :包括网关以及 user filter 和 admin filter 进行权限校验。对于完全开放的内容(如商品详情),大概无需颠末过滤器。
  • 业务层 :涵盖订单、商品、目录、购物车、用户、广告等功能模块。这些功能可通过框图方式清晰表达。
  • 底子设施层 :包括所利用的组件和存储装备,如 MySQL、Redis、MQ 以及文件存储等。
  • 通用能力和通用功能 :通用能力包括日志记载、非常处置惩罚、定时使命、权限团体校验、参数校验以及文件上传等。通用功能则涵盖图片处置惩罚、Excel 处置惩罚以及二维码天生等。
重点亮点 :整个项目架构图展示了丰富的功能、通用能力和通用功能,以及清晰的底子设施和业务层划分。在口试中展示此架构图,可体现开辟经验和团体明白能力,是项目口试中的一大亮点。发起考生截图并尝试自行绘制,以确保熟悉并掌握架构图的各个部分。
2. 架构演进

项目口试中的架构演进亮点



  • 单体变微服务

    • 最初采用 spring boot 单体项目。
    • 为实现模块间解耦,升级为 spring cloud 微服务架构,并学习 spring cloud 各模块间的通讯机制。

  • 用户权限校验升级

    • 初始利用传统的 session 和 cookie 模式进行用户权限校验。
    • 后续升级为 jwt 验证方式。需了解 jwt 的定义、组成部分、优点及缺点。

  • 网关升级

    • 最初利用旧网关。
    • 现已迭代至 spring cloud gateway 网关。升级过程中办理了过滤器定义、新网关下身份验证、筛选排除及原网关升级等问题。

3. 项目亮点

本项目技术亮点包括:


  • 线程池的利用

    • 线程池是口试中的必考点,适用于低级至高级工程师。
    • 在发送邮件时,为提高初始发送速度,采用线程池进行异步发送。需掌握线程池各参数的含义。

  • 分布式锁的应用

    • 在执行定时使命时,为防止多个实例同时执行,利用分布式锁。
    • 本项目采用 Redis 实现分布式锁,需明白其背后原理。

  • 分布式变乱的引入

    • 单体变乱相对简单,但分布式环境中问题增多。
    • 由于架构升级和微服务拆解,原单机变乱无法满足需求,因此引入分布式变乱。

以上三点是项目口试中的加分项,涵盖了团体架构、架构演进过程及独立亮点。
二、常见问题解答

1. 文件路径映射

有学生提出关于文件路径映射的疑问,即不明白为安在网页中输入地点即可打开图片。其映射机制是在 mvc config 类中设置了 URL 的映射规则。具体为,若 URL 中包含 image 路径,则将其映射至指定的 file 路径。该 file 路径为文件夹地点,需根据个人实际环境进行设置。
2. 长途调用校验管理员身份方法

我们之前会有一个 check admin row 这样的方法。有同砚提出,这个时间是否需要用到长途调用?长途调用是否成本较高?是否可以直接引入 user service,然后直接利用 service 进行校验?
实际上,如果直接利用 service,会导致耦合性过强。因为与用户相关的功能,应尽量交由用户模块处置惩罚。例如,校验管理员身份这一功能,发生在 cut order 购物车订单模块中。最好的办法不是直接引入 user service,否则大概又回到单体架构上。最佳实践是,需要用到用户模块的功能时,通过接口调用其提供的服务。这样,后续无需关心其具体实现,即利用户模块逻辑发生改动,也仅是该模块内部的变乱,与其他模块无关。因此,最优方案并非直接引入相关 service。
3. 毗连本地端口问题

六三七九端口毗连报错问题:


  • 报错原因 :六三七九是 Redis 的默认端口,若遇到无法毗连到此端口的错误,很大概率是本机未启动 Redis 服务。
  • 项目运行依赖 :项目运行不仅依赖于 Redis,还包括其他服务如 MQ 等,这些服务均需正确下载、安装、设置并启动。
  • 数据库设置 :若不进行数据库设置,项目将无法启动,因为数据库是项目运行的须要依赖。
  • 微服务环境依赖 :在微服务环境下,若未启动 Eureka 作为注册中心,服务虽然可以启动,但会不断报错,提示找不到注册中心。
总结 :项目运行不仅依赖于 JAVA 代码,还需确保全部相关服务和依赖均正确设置并启动。
4. 日志查看问题



  • 设置底子设施 :是必须的准备工作。
  • 学会查看日志 :是提高问题排查能力的关键。
  • 错误日志的紧张性 :错误日志是查找问题原因的紧张依据。在大多数环境下,错误都会在日志中清晰记载,无论是六三七九错误照旧无法找到相应数据库的问题。错误日志会提供关键信息。
  • 自我尝试办理问题 :有助于能力提升和获得成绩感。如果日志难以明白,可以将相关日志复制到网站进行搜索,通常能找到其他遇到相同问题并分享办理思路的用户。发起学习者在遇到问题时,首先尝试自行办理,通过查看日志或搜索日志内容来找到办理方案。
三、总结

Spring Cloud 电商进阶开辟总结



  • 定时使命的学习与应用 :掌握了 cron 表达式的写法,并在 Spring 中实现了定时使命。实现了定时捞取超时订单并批量关闭的功能。为定时使命添加了分布式锁以增强稳定性。
  • 线程池与 ThreadLocal 的利用 :在项目中应用了线程池来实现异步发送邮件。增强了路由的安全性,排除了不盼望用户访问的接口。对非常进行了同一处置惩罚,提升了项目的健壮性。
  • Spring Cloud Gateway 的学习与思索 :重点不仅在于怎样利用 Spring Cloud Gateway,更在于项目开辟中的思索。当切换网关或验证方式从 session 升级到 jwt 时,需要编写 gateway 相关设置。在微服务代码中,需调整以解除 session 依赖,并调整相关费用逻辑为 user free local。
  • 项目口试相关内容 :先容了项目架构、演进过程及项目亮点。助力口试者提升口试表现,争取更高分数。
  • 课程问题解答 :对 Spring Cloud 课程中常见问题进行了解答,资助学习者巩固知识点。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

反转基因福娃

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表