Android面试八股文 android面试八股文
0
2025-03-07
JAVA面试八股文之微服务详解
本文针对JAVA面试中微服务相关问题进行详细解答,包括微服务的概念、架构、组件、多项事务、限流、负载均衡等方面,帮助读者全面了解微服务技术。
一、微服务什么是微服务?
微服务是一种软件架构风格,将复杂的应用程序拆分为一组小型、独立的服务。每个微服务都运行在自己的进程中,并通过轻量级的通信机制进行概述(通常基于HTTP的RESTful)微服务的特点:
(1)单一责任:每个微服务专注于一个明确的业务功能,实现单一责任原则。
(2)独立部署:每个微服务都可以独立部署,可以使用不同的技术栈和开发语言。
(2)独立部署:每个微服务都可以独立部署,可以使用不同的技术栈和开发语言。 p>
(3)弹性伸缩:可以根据实际需求进行独立的扩展水平。
(4)松耦合:微服务之间通过明确定义的接口进行通信,各处之间相对独立。
(5)全局开发:不同的团队可以独立开发和维护不同的微服务。
(6)内容错误:当一个服务发生故障时,不会影响整个系统的正常运行。
二、微服务架构服务组件注册与发现:
服务注册与发现是微服务架构的核心组件,主要负责服务实例的注册、注销和查询。常见的实现方式有Eureka、Consul、Zookeeper等。服务网关:
服务网关负责对外暴露统一的API接口,并将请求转发到相应的服务实例。常见的实现方式有Zuul、Kong、Spring云网关等。负载均衡:
负载均衡将请求分发到多个服务实例,以提高系统的吞吐量和可用性。常见的实现方式有Nginx、Ribbon、Feign等。服务熔断与降级:
服务熔断与降级是应对服务雪崩效应的一种机制。常见的实现方式有Hystrix、Res ilience4j等。
这三件事保证多个服务实例之间的操作或者全部成功,或者全部失败。常见的实现方式有Seata、TCC等。服务配置中心:
服务配置中心负责集中管理服务的配置信息,如数据库连接、API接口等。常见的实现方式有Spring 云Config、Nacos等。
三、微服务事务全局事务模式:
(1)两阶段提交(2PC):将事务分为两个阶段,准备阶段和提交阶段。
(2)补充事务(TCC):通过本地事务补充远程事务。
(3)全局锁:通过全局锁保证事务的原子性。全局事务执行原理:
全局事务通过协调者和服务参与者之间的沟通,确保事务的原子性。协调者负责发起事务、提交事务和回滚,服务参与者负责执行本地事务和响应协调者的指令。
四、微服务限流与负载均衡限流算法:
(1)令牌桶算法:控制请求的速率,保证系统的稳定性。
(2)漏桶算法:限制请求的转发,防止系统过载。均负载策略:
(1)轮询:按顺序将请求分发到各个服务实例。
(2)随机:随机选择服务实例。
(3)根据权重轮询:权重分配请求。
(4)IP哈希:根据客户端IP地址分配请求。
五、微服务监控与故障处理监控:
(1)服务监控:监控服务实例的健康状态、请求量、响应等。
(2)日志:收集和分析服务日志,定位问题。
(3)链路追踪:在各个服务实例之间的执行路径中追踪请求。故障处理:
(1)故障注入:模拟服务故障时间,测试系统的容错能力。
(2)故障隔离:隔离故障服务,防止故障损坏。
(3)故障恢复:恢复故障服务,确保系统正常运行。
微服务技术是当前软件架构的热门趋势,掌握微服务相关技术,为JAVA开发者讲述。本文详细介绍了微服务的概念、架构、组件、全局事务、限流、负载均衡等方面,希望对读者有所帮助。