字节后端面试题(前端发送请求到后端的过程(MVC),网关gateway作用,怎么解决跨域,各微服务组件作用)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 字节后端面试题(前端发送请求到后端的过程(MVC),网关gateway作用,怎么解决跨域,各微服务组件作用)

字节后端面试题(前端发送请求到后端的过程(MVC),网关gateway作用,怎么解决跨域,各微服务组件作用)

前端发送请求到后端的过程(MVC)

用户与前端页面进行交互,比如点击了一个前端页面的按钮,这个时候用户的操作就会触发前端视图(View)上的事件。这些事件由JavaScript编写,然后通过axios或者ajax等工具发送异步请求到后端。后端接收到前端发送的HTTP请求,包含了用户的操作数据。

在后端,Controller层负责处理接收到的请求,包括验证、解析数据,然后调用相应的业务逻辑。这里的Controller对应了MVC中的C。后端的Model层进行业务逻辑的处理,可能涉及数据库的CRUD操作,对应MVC中的M。

处理完业务逻辑后,后端生成响应数据,将其以JSON格式或者HTML页面的形式返回给前端。前端接收到后端的响应后,通过JavaScript等方式更新页面的DOM结构,完成用户界面的更新。这个过程中,前端的View层起到了接收用户输入和更新界面的作用。

网关gateway作用,怎么解决跨域

就是在springcloud中,我们用的是springcloud gateway来实现网关的功能,会通过一个注解在启动类上,叫做@EnableGateway,再然后配置CORS过滤器这个类,这个我一般就是网上直接复制的,稍微改一下就可以直接用了,这样就允许了跨域请求,最后我们还需要通过yml配置文件,进行一些相关的配置,可以配置gateway里面的routes把哪些请求转发到哪些服务。

各微服务组件作用

我就按照各个springcloud的各个微服务组件在一个项目中的编写顺序来讲解,首先是服务注册以前用的是Eureka后来改成了naocs,因为Nacos 提供的动态配置、更丰富的功能,微服务启动的时候,在启动类上面使用@EnableDiscoveryClient这个注解,来配置nacos的服务地址,微服务通过nacos客户端像nacos服务注册自己的信息,nacos启动的时候有一个独立的网页,可以进行相关的配置。接下来微服务利用springcloud config进行配置中性的配置,微服务启动的时候,从配置中心获取配置信息,配置中心包含了微服务的各项配置,比如数据库连接,缓存配置等等。再之后就是gateway网关了,在启动类上面通过@EnableGateway这个注解进行配置,配置路由规则,这个通过在yml配置文件中进行配置,配置哪些请求转发给哪些服务,再然后是为了项目的安全性微服务里面还有Hystrix作为熔断器,通过@HystrixCommand注解标记需要进行熔断的方法,Hystrix监控微服务方法的执行情况,当某个方法失败或者超时达到某个阈值时,Hystrix会打开断路器,停止向该服务发送请求。为了提高项目的负载,微服务还提供了Ribbon组件来实现负载均衡,通过@loadBalanced注解开启负载均衡,Ribbon根据负载均衡算法把请求分发到多个相同的微服务,Ribbon默认的负载均衡算法是轮询当然也可以自己设置,在yml里面进行配置就可以了,最后一个就是springcloud bus这个的作用就是通过消息总线传播状态变化和配置变化,让其他的微服务实时获取变更的信息,保持系统的一致性。

通过比喻就是下面这样的

Spring Cloud组件如Eureka是服务目录,类似于商场的服务目录,记录微服务的位置;Spring Cloud Config是配置文件管理员,类似于公司的配置文件管理员,负责更新工作配置;Spring Cloud Gateway是门卫,类似于社区的门卫,处理请求,确保只有授权的请求能够进入微服务社区;Hystrix是保险丝,类似于电器中的保险丝,当微服务出现故障时,断开连接,防止故障扩散;Ribbon是分发器,类似于老师手中的分发工具,确保每个学生都能够平均接收到批改;Spring Cloud Bus是通告系统,类似于公司的通告系统,通过消息总线发布通告,保持整个公司的一致性。

如果大家觉得有用的话,可以关注我下面的微信公众号,极客李华,我会在里面更新更多行业资讯,企业面试内容,编程资源,如何写出可以让大厂面试官眼前一亮的简历等内容,让大家更好学习编程,我的抖音,B站也叫极客李华。大家喜欢也可以关注一下

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
2天前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
22 3
|
21天前
|
前端开发 Java 开发者
Spring MVC中的请求映射:@RequestMapping注解深度解析
在Spring MVC框架中,`@RequestMapping`注解是实现请求映射的关键,它将HTTP请求映射到相应的处理器方法上。本文将深入探讨`@RequestMapping`注解的工作原理、使用方法以及最佳实践,为开发者提供一份详尽的技术干货。
64 2
|
2月前
|
设计模式 前端开发 Java
Spring MVC——项目创建和建立请求连接
MVC是一种软件架构设计模式,将应用分为模型、视图和控制器三部分。Spring MVC是基于MVC模式的Web框架,通过`@RequestMapping`等注解实现URL路由映射,支持GET和POST请求,并可传递参数。创建Spring MVC项目与Spring Boot类似,使用`@RestController`注解标记控制器类。
39 1
Spring MVC——项目创建和建立请求连接
|
2月前
|
前端开发 小程序 Java
java基础:map遍历使用;java使用 Patten 和Matches 进行正则匹配;后端传到前端展示图片三种情况,并保存到手机
这篇文章介绍了Java中Map的遍历方法、使用Pattern和matches进行正则表达式匹配,以及后端向前端传输图片并保存到手机的三种情况。
26 1
|
2月前
|
前端开发 JavaScript Java
导出excel的两个方式:前端vue+XLSX 导出excel,vue+后端POI 导出excel,并进行分析、比较
这篇文章介绍了使用前端Vue框架结合XLSX库和后端结合Apache POI库导出Excel文件的两种方法,并对比分析了它们的优缺点。
728 0
|
2月前
|
前端开发 JavaScript 小程序
前端uni开发后端用PHP的圈子系统该 如何做源码?
圈子系统系统基于TP6+Uni-app框架开发;客户移动端采用uni-app开发,管理后台TH6开发。系统支持微信公众号端、微信小程序端、H5端、PC端多端账号同步,可快速打包生成APP
|
2月前
|
前端开发 Java 数据库
springBoot:template engine&自定义一个mvc&后端给前端传数据&增删改查 (三)
本文介绍了如何自定义一个 MVC 框架,包括后端向前端传递数据、前后端代理配置、实现增删改查功能以及分页查询。详细展示了代码示例,从配置文件到控制器、服务层和数据访问层的实现,帮助开发者快速理解和应用。
|
2月前
|
安全 5G 网络性能优化
|
3月前
|
监控 负载均衡 安全
微服务(五)-服务网关zuul(一)
微服务(五)-服务网关zuul(一)
|
1天前
|
NoSQL 前端开发 测试技术
👀探秘微服务:从零开启网关 SSO 服务搭建之旅
单点登录(Single Sign-On,简称SSO)是一种认证机制,它允许用户只需一次登录就可以访问多个应用程序或系统。本文结合网关和SaToken快速搭建可用的Session管理服务。
22 8
下一篇
DataWorks