微服务面试题:概览

🧑 博主简介:CSDN博客专家历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c=1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程高并发设计Springboot和微服务,熟悉LinuxESXI虚拟化以及云原生Docker和K8s,热衷于探索科技的边界,并将理论知识转化为实际应用。保持对新技术的好奇心,乐于分享所学,希望通过我的实践经历和见解,启发他人的创新思维。在这里,我希望能与志同道合的朋友交流探讨,共同进步,一起在技术的世界里不断学习成长。
技术合作请加本人wx(注明来自csdn):foreast_sea


微服务面试题:概览

1. 什么是微服务?

微服务(Microservices)是一种软件架构风格,将一个大型应用程序划分为一组小型、自治且松耦合的服务。每个微服务负责执行特定的业务功能,并通过轻量级通信机制(如 HTTP)相互协作。每个微服务可以独立开发、部署和扩展,使得应用程序更加灵活、可伸缩和可维护。

在微服务的架构演进中,一般可能会存在这样的演进方向:单体式–>服务化–>微服务。

单体服务一般是所有项目最开始的样子:

  • 单体服务(Monolithic Service)是一种传统的软件架构方式,将整个应用程序作为一个单一的、紧耦合的单元进行开发和部署。单体服务通常由多个模块组成,这些模块共享同一个数据库和代码库。然而,随着应用程序规模的增长,单体服务可能变得庞大且难以维护,且部署和扩展困难。

后来,单体服务过大,维护困难,渐渐演变到了分布式的 SOA:

  • SOA(Service-Oriented Architecture,面向服务的架构)是一种软件架构设计原则,强调将应用程序拆分为相互独立的服务,通过标准化的接口进行通信。SOA 关注于服务的重用性和组合性,但并没有具体规定服务的大小。
  • 微服务是在 SOA 的基础上进一步发展而来,是一种特定规模下的服务拆分和部署方式。微服务架构强调将应用程序拆分为小型、自治且松耦合的服务,每个服务都专注于特定的业务功能。这种架构使得应用程序更加灵活、可伸缩和可维护。

需要注意的是,微服务是一种特定的架构风格,而 SOA 是一种设计原则。微服务可以看作是对 SOA 思想的一种具体实践方式,但并不等同于 SOA。

微服务与单体服务的区别在于规模和部署方式。微服务将应用程序拆分为更小的、自治的服务单元,每个服务都有自己的数据库和代码库,可以独立开发、测试、部署和扩展,带来了更大的灵活性、可维护性、可扩展性和容错性。

2. 微服务带来了哪些挑战?

微服务架构不是万金油,尽它有很多优点,但是对于是否采用微服务架构,是否将原来的单体服务进行拆分,还是要考虑到服务拆分后可能带来的一些挑战和问题:

  1. 系统复杂性增加:一个服务拆成了多个服务,整体系统的复杂性增加,需要处理服务之间的通信、部署、监控和维护等方面的复杂性。
  2. 服务间通信开销:微服务之间通过网络进行通信,传递数据需要额外的网络开销和序列化开销,可能导致性能瓶颈和增加系统延迟。
  3. 数据一致性和事务管理:每个微服务都有自己的数据存储,数据一致性和跨服务的事务管理变得更加复杂,需要额外解决分布式事务和数据同步的问题。
  4. 部署和运维复杂性:微服务架构涉及多个独立部署的服务,对于部署、监控和容错机制的要求更高,需要建立适当的部署管道和自动化工具,以简化部署和运维过程。
  5. 团队沟通和协作成本:每个微服务都由专门的团队负责,可能增加团队之间的沟通和协作成本。需要有效的沟通渠道和协作机制,确保服务之间的协调和一致性。
  6. 服务治理和版本管理:随着微服务数量的增加,服务的治理和版本管理变得更加复杂。需要考虑服务的注册发现、负载均衡、监控和故障处理等方面,以确保整个系统的可靠性和稳定性。
  7. 分布式系统的复杂性:微服务架构涉及构建和管理分布式系统,而分布式系统本身具有一些固有的挑战,如网络延迟、分布式一致性和容错性。

简单说,采用微服务需要权衡这些问题和挑战,根据实际的需求来选择对应的技术方案,很多时候单体能搞定的也可以用单体,不能为了微服务而微服务。

3. 现在有哪些流行的微服务解决方案?

目前最主流的微服务开源解决方案有三种:

  1. Dubbo

  • Dubbo是一个高性能、轻量级的 Java 微服务框架,最初由阿里巴巴(Alibaba)开发并于 2011 年开源。它提供了服务注册与发现、负载均衡、容错、分布式调用等功能,后来一度停止维护,在近两年,又重新开始迭代,并推出了 Dubbo3。
  • Dubbo使用基于 RPC(Remote Procedure Call)的通信模型,具有较高的性能和可扩展性。它支持多种传输协议(如 TCP、HTTP、Redis)和序列化方式(如 JSON、Hessian、Protobuf),可根据需求进行配置。
  • Dubbo更多地被认为是一个高性能的 RPC(远程过程调用)框架,一些服务治理功能依赖于第三方组件实现,比如使用 ZooKeeper、Apollo 等等。
  1. Spring Cloud Netflix
  • Spring Cloud Netflix 是 Spring Cloud 的一个子项目,结合了 Netflix 开源的多个组件,但是 Netflix 自 2018 年停止维护和更新 Netflix OSS 项目,包括 Eureka、Hystrix 等组件,所以 Spring Cloud Netflix 也逐渐进入了维护模式。
  • 该项目包含了许多流行的 Netflix 组件,如 Eureka(服务注册与发现)、Ribbon(客户端负载均衡)、Hystrix(断路器)、Zuul(API 网关)等。它们都是高度可扩展的、经过大规模实践验证的微服务组件。
  1. Spring Cloud Alibaba
3.1 以下这三种方案有什么区别吗?

三种方案的区别

特点DubboSpring Cloud NetflixSpring Cloud Alibaba
开发语言JavaJavaJava
服务治理提供完整的服务治理功能提供部分服务治理功能提供完整的服务治理功能
服务注册与发现ZooKeeper/NacosEureka/ConsulNacos
负载均衡自带负载均衡策略RibbonRibbon\Dubbo 负载均衡策略
服务调用RPC 方式RestTemplate/FeignFeign/RestTemplate/Dubbo
熔断器SentinelHystrixSentinel/Resilience4j
配置中心ApolloSpring Cloud ConfigNacos Config
API 网关Higress/APISIXZuul/GatewaySpring Cloud Gateway
分布式事务Seata不支持分布式事务Seata
限流和降级SentinelHystrixSentinel
分布式追踪和监控SkywalkingSpring Cloud Sleuth + ZipkinSkyWalking 或 Sentinel Dashboard
微服务网格Dubbo Mesh不支持微服务网格Service Mesh(Nacos+Dubbo Mesh)
社区活跃度相对较高目前较低相对较高
孵化和成熟度孵化较早,成熟度较高成熟度较高孵化较新,但迅速发展
  • Spring Cloud AlibabaSpring Cloud的另一个子项目,与阿里巴巴的分布式应用开发框架相关。它提供了一整套与 Alibaba 生态系统集成的解决方案。
  • 该项目包括Nacos(服务注册与发现、配置管理)、Sentinel(流量控制、熔断降级)、RocketMQ(消息队列)等组件,以及与 Alibaba Cloud(阿里云)的集成。它为构建基于 Spring Cloud 的微服务架构提供了丰富的选项。
  • 据说SpringCloud Alibaba项目的发起人已经跑路去了腾讯,并发起了 SpringCloud Tecent 项目,社区发展存在隐忧。

注意:在面试中,微服务一般主要讨论的是 Spring Cloud Netflix,其次是 Spring Cloud Alibaba,Dubbo 更多的是作为一个 RPC 框架来问。

4. 说下微服务有哪些组件?

微服务给系统开发带来了一些问题和挑战,如服务调用的复杂性分布式事务的处理服务的动态管理等。为了更好地解决这些问题和挑战,各种微服务治理的组件应运而生,充当微服务架构的基石和支撑。


微服务的各个组件和常见实现:

  1. 注册中心:用于服务的注册与发现,管理微服务的地址信息。常见的实现包括:
  • Spring Cloud Netflix:Eureka、Consul
  • Spring Cloud Alibaba:Nacos
  1. 配置中心:用于集中管理微服务的配置信息,可以动态修改配置而不需要重启服务。常见的实现包括:
  • Spring Cloud Netflix:Spring Cloud Config
  • Spring Cloud Alibaba:Nacos Config
  1. 远程调用:用于在不同的微服务之间进行通信和协作。常见的实现保包括:
  • RESTful API:如 RestTemplate、Feign
  • RPC(远程过程调用):如 Dubbo、gRPC
  1. API 网关:作为微服务架构的入口,统一暴露服务,并提供路由、负载均衡、安全认证等功能。常见的实现包括:
  • Spring Cloud Netflix:Zuul、Gateway
  • Spring Cloud Alibaba:Gateway、Apisix 等
  1. 分布式事务:保证跨多个微服务的一致性和原子性操作。常见的实现包括:
  • Spring Cloud Alibaba:Seata
  1. 熔断器:用于防止微服务之间的故障扩散,提高系统的容错能力。常见的实现包括:
  • Spring Cloud Netflix:Hystrix
  • Spring Cloud Alibaba:Sentinel、Resilience4j
  1. 限流和降级:用于防止微服务过载,对请求进行限制和降级处理。常见的实现包括:
  • Spring Cloud Netflix:Hystrix
  • Spring Cloud Alibaba:Sentinel
  1. 分布式追踪和监控:用于跟踪和监控微服务的请求流程和性能指标。常见的实现包括:
  • Spring Cloud Netflix:Spring Cloud Sleuth + Zipkin
  • Spring Cloud Alibaba:SkyWalking、Sentinel Dashboard

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1005032.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无需安装!在线体验n8n的5种创新方法

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个n8n快速体验平台,集成以下功能:1) 基于Web的n8n实例(预配置常用连接器);2) 示例工作流库(分类展示&a…

Java 开发最容易犯的 10 个错误

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…

LangGraph深度解析:从图基础到人机交互的AI工作流框架实践

摘要:LangGraph作为新兴的AI工作流编排框架,通过图结构为Agent开发提供了全新的编程范式。本文从基础概念入手,深度剖析LangGraph的核心三要素(节点、边、状态),详解并行处理、记忆管理、工具集成等高级特性…

意图识别深度原理解析:从向量空间到语义流形

1. 意图识别的数学本质 意图识别(Intent Recognition)在数学上是一个经典的**判别式模型(Discriminative Model)**问题。 给定一个自然语言输入序列 X{x1,x2,...,xn}X \{x_1, x_2, ..., x_n\}X{x1​,x2​,...,xn​},其…

RepoEval:定义仓库级代码补全评估的新基准

本文由「大千AI助手」原创发布,专注用真话讲AI,回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我,一起撕掉过度包装,学习真实的AI技术! 1. 引言:从单行补全到仓库级智能的评估挑战 在软件工程与…

提升资源管理效率必备工具推荐

一、数据传输1、Textify(PC)作为一名技术人员,需要经常研究各种技术,因此,复制粘贴的操作十分常见。Textify可以快速复制各种控件中的文本,包括浏览器中当前页面的标题、聊天窗口中各个部分的文字、桌面应用…

java Happens - before 原则到底是什么

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…

2025 年 12 月雅安市汽车租赁服务权威推荐榜:轿车、豪车、越野车、婚车、大巴车、商务车、房车、旅游车、跑车、皮卡车一站式尊享服务 - 品牌企业推荐师(官方)

2025 年 12 月雅安市汽车租赁服务权威推荐榜:轿车、豪车、越野车、婚车、大巴车、商务车、房车、旅游车、跑车、皮卡车一站式尊享服务 随着川西旅游热度的持续攀升与区域经济活动的日益活跃,雅安市作为川藏线的重要门…

关于-根据-ISO8601-国际标准-计算一年中的周数-每年最少52周-每多53周

关于-根据-ISO8601-国际标准-计算一年中的周数-每年最少52周-每多53周Posted on 2025-12-12 23:50 520_1351 阅读(0) 评论(0) 收藏 举报对于日期与周有几个规则如下 1、一年有多少天,平年 365 天, 润年366 天 2…

2025年12月软件开发公司权威推荐榜:小程序开发、APP开发,专业定制与创新技术实力深度解析 - 品牌企业推荐师(官方)

2025年12月软件开发公司权威推荐榜:小程序开发、APP开发,专业定制与创新技术实力深度解析 在数字经济浪潮持续奔涌的当下,软件开发已成为驱动企业数字化转型、重塑业务流程与商业模式的核心引擎。无论是面向内部管理…

《Ascend C:从“算子炼金术”到国产AI芯片生态的破局之战》

一、开篇:当算子开发成为“芯片战争”的新战场2024年Q4,华为昇腾开发者大会现场,一段震撼的实时演示引发掌声雷动:Ascend C编写的自定义算子,在910B芯片上以3.2倍于TensorRT的吞吐量完成千卡级模型推理。这不仅是数字的…

刘洋洋新歌《梁祝之三世约》上线,唱尽轮回绝恋

刘洋洋《梁祝之三世约》的封面作为兼具流行、京剧、民族等多元唱法的跨界实力歌手,刘洋洋的全新国风单曲《梁祝之三世约》将于2025年12月12日正式登陆各大音乐平台。这首作品以经典梁祝意象为核心,构建出跨越三生三世的情感宇宙,用唯美凄烈的…

2025 年 12 月滚塑模具厂家权威推荐榜:滚塑钢模/铝模/铸铝模具/铝板模具/加工制品/产品/穿梭机/烘箱,匠心工艺与高效产能深度解析 - 品牌企业推荐师(官方)

2025 年 12 月滚塑模具厂家权威推荐榜:滚塑钢模/铝模/铸铝模具/铝板模具/加工制品/产品/穿梭机/烘箱,匠心工艺与高效产能深度解析 滚塑成型技术,作为一种独特的塑料加工工艺,以其在制造大型、复杂、中空、无缝塑料…

⭐解锁RAG与Spring AI的实战应用(万字详细教学与完整步骤流程实践)

一、RAG基本知识什么是RAG呢?RAG(Retrieval-Augmented Generation):是检索增强生成,是一种结合信息检索技术和AI内容生成的混合架构,可以解决大模型的知识时效性限制和幻觉问题。Spring AI框架实现RAG的两种…

MySQL 知识点复习- 6. ORDER BY, GROUP BY

ORDER BYORDER BY 可以按照一个或多个列的值进行升序(ASC)或者降序(DESC)排序。SELECT column1, column2, ... FROM table_name ORDER BY column1 [ASC | DESC], column2 [ASC | DESC], ...;例子:SELECT * FROM productsORDER BY product_name ASC;以上 SQL 语句将选择产品表…

当停课 Oier 重回文化课

前情提要,高一期中考试前共十三周,笔者总共上了四周。三周停课前,一周停课后。 Day -1 Day 0 Day 1 Day 2 Day 3

Flink学习笔记:反压

今天来聊在 Flink 运维过程中比较常见的一个问题:反压。 什么是反压 反压是流式系统中关于数据处理能力的动态反馈机制,并且是从下游到上游的反馈,一般发生在上游节点的生产速度大于下游节点的消费速度的情况。 数据如何传输 在了解反压的细节…

意图识别面试通关指南:从基础问答到场景落地

引言 意图识别(Intent Recognition)作为任务型对话系统(Task-oriented Dialogue System)的核心组件,一直是 NLP 算法岗面试的高频考点。本文整理了从基础概念到工程实践的常见面试题,助你从容应对。 第一部…

NOI范围下的背包DP模型

0.背包DP的定义 形如:有 n 个物品,每个物品有一个体积 vi 和价值 wi,现在有一个大小为 V 的背包,并且对选择物品的方式有所限制,问选择物品总价值之和最大为多少的动态规划问题。 1.01背包 每个物品只能选一次的背包问…