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

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
性能测试 PTS,5000VUM额度
云原生网关 MSE Higress,422元/月
简介: 字节后端面试题(前端发送请求到后端的过程(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)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
1月前
|
前端开发 Dubbo Java
spring面试题_spring mvc面试题_springboot面试题库
spring面试题_spring mvc面试题_springboot面试题库
|
17天前
|
监控 Java API
Java面试题:解释微服务架构的概念及其优缺点,讨论微服务拆分的原则。
Java面试题:解释微服务架构的概念及其优缺点,讨论微服务拆分的原则。
21 0
|
1月前
|
存储 运维 负载均衡
「微服务」这10道Consul面试题值得一看
Consul 是一个强大的分布式服务发现和配置管理工具,用于服务注册、健康检查、负载均衡、故障恢复等。它支持多数据中心和多种协议,提供服务发现、健康检查、KV 存储和事件通知功能。服务注册与健康检查由 Agent 实现,负载均衡通过 Service Mesh 实现。尽管 Consul 提供诸多优点,如多数据中心支持和高可用性,但其学习和部署成本较高,适合大型项目,对于小型或初学者可能过于复杂。在使用时需根据实际需求和资源考虑。
|
1月前
|
监控 测试技术 数据库
【面试宝藏】微服务架构详解
微服务架构将大型应用拆分成小型、独立的服务,每个服务专注特定业务功能,实现独立部署和扩展。优势包括故障隔离、技术多样性、开发灵活性。挑战包括服务发现、数据一致性及运维复杂性。RESTful用于构建Web API,微服务测试涵盖单元、集成、契约、端到端和性能测试。DDD帮助处理复杂业务逻辑,通过统一语言增强沟通。
27 2
|
1月前
|
运维 Serverless API
函数计算产品使用问题之作为api网关后端服务,切到3.0有什么好处
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
1月前
|
安全 Java 应用服务中间件
详细介绍几种处理后端跨域问题的方案
详细介绍几种处理后端跨域问题的方案
|
2月前
|
监控 Java Nacos
Java微服务框架面试总结(全面,实时更新)
Java微服务框架面试总结(全面,实时更新)
|
2月前
|
微服务 中间件 Nacos
01.【微服务架构】服务注册与发现:AP和CP,你选哪个?-- 面试准备+基本模型
【5月更文挑战第2天】面试准备应涵盖公司所使用的注册中心类型及其优缺点,了解其集群规模、QPS和机器性能。准备故障排查及优化案例。若公司未采用微服务,可熟悉ZooKeeper、Nacos或etcd的基本特性以讨论注册中心概念。面试时,可将话题引导至服务注册与发现,如被问及特定中间件,阐述为何选择它并讨论优缺点。当涉及微服务高可用性时,可强调服务注册与发现的作用。基础模型部分,需解释服务上线和下线流程,提及注册数据和分组功能,并举例说明。最后,简述服务注册与发现的高可用挑战。
50 8
|
2月前
|
运维 网络协议 Linux
2024年最全CentOS8 Consul微服务架构安装(1)_agent(1),Linux运维开发面试
2024年最全CentOS8 Consul微服务架构安装(1)_agent(1),Linux运维开发面试
|
2月前
|
XML 前端开发 Android开发
Android架构设计——MVC,滴滴 战略 面试
Android架构设计——MVC,滴滴 战略 面试