面试总结之微服务篇

小公司比较吃亏的两道微服务面试题 实选择工作的时候,很多技术牛人都会选择一些小而美的公司,技术全面,能够以一个更全面的视角看整个公司的运作,人和人之间的相处也很简单。但是,有两道微服务的面试题,小公司的朋友们会比较吃亏。 阅读详情

一、概览

1、微服务常用组件

  • 微服务给系统开发带来了诸多问题和挑战,如服务间通信和调用的复杂性、数据一致性和事务管理、服务治理和版本管理等,为解决应对这些问题和挑战,各种微服务组件应运而生
  • 微服务的常见组件和实现:
    -
    在这里插入图片描述

1)注册中心:用于服务的注册和发现,管理微服务的地址信息,常见实现有:

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

二、注册中心

1、注册中心的作用

  • 注册中心是用来管理和维护分布式系统中各个服务的地址和元数据的组件,主要用于实现服务的发现和注册功能
    在这里插入图片描述
    注册中心的作用:
  • 服务注册:各个服务在启动时向注册中心注册自己的网络地址、服务实例信息和其他相关的元数据,如此,其他服务就可以通过注册中心获取到当前可用的服务列表
  • 服务发现:客户端通过向注册中心查询特定服务的注册信息,获得可用的服务实例列表,如此客户端即可根据需要选择合适的服务进行调用,实现了服务间的解耦
  • 负载均衡:注册中心可以对同一服务的多个实例进行负载均衡,将请求分发到不同的实例上,提高整体的系统性能和可用性
  • 故障恢复:注册中心能够监测和检测服务的状态,当服务实例发生故障或下线时,可以及时地更新注册信息,从而保证服务能够正常工作
  • 服务治理:通过注册中心可以进行服务的配置管理、动态扩容/ 缩容,服务路由、灰度发布等操作,实现对服务的动态管理和控制

2、注册中心的实现方案

SpringCloud可以和多种注册中心进行集成,常见的注册中心有Eureka、Consul、Zookeeper、Nacos

  • Eureka:Netflix开源的服务发现组件,具有高可用、弹性、可扩展等特点,与Spring Cloud集成良好
  • Consul:分布式服务发现和配置管理系统,提供了服务的注册和发现、健康检查、键值存储等功能,并支持多数据源中心部署
  • Nacos:阿里开源的动态服务发现、配置管理和服务管理组件,提供了服务注册和发现、配置管理、动态DNS服务等功能
  • Zookeeper:Apache开源的分布式协调服务,可用作服务注册中心,具有高可用、一致性、可靠性等特点

3、Eureka、Zookeeper和Nacos的区别

在这里插入图片描述
三者最大的区别在于Eureka支持AP,Zookeeper支持CP,而Nacos既支持AP,也支持CP

4、Eureka实现原理

在这里插入图片描述
Eureka的实现原理,大致可以从服务的注册与发现、服务的健康检查、服务负载均衡三个三面来看:

  • 1)服务注册与发现:当一个服务实例启动时,会向Eureka Server发送注册请求,将其信息登记到注册中心,Eureka Server会将这些信息保存到内存中,并提供REST接口以供其他服务查询,服务消费者可以通过查询服务实例列表来获取可用的服务提供者实例,从而实现服务的发现
  • 2)服务健康检查:Eureka通过心跳机制来检测服务实例的健康状态,服务实例会定期向Eureka Server发送心跳,即续约,以表明自己的存货状态,如果Eureka Server在一定时间内没有收到某个服务实例的心跳,则会将其标记为不可用,并从服务列表中移除,下线实例
  • 3)服务负载均衡:Eureka客户端在调用其他服务时,会从本地缓存中获取服务的注册信息,如果缓存中没有对应的信息,则会向Eureka Server发送查询请求,Eureka Server会返回一个可用的服务实例列表给客户端,客户端可以使用负载均衡算法选择其中的服务实例进行调用

其他的注册中心,如Nacos、Consul等,在服务注册和发现上,实现原理都大同小异

小结:

  • 1)服务治理中的三个角色
  • 服务提供者:暴露服务接口,以供其他服务调用
  • 服务消费者:调用其他服务提供的接口
  • 注册中心:记录并监控微服务各实例的状态,推送服务的变更信息
    注:提供者和消费者不是固定的,往往一个服务既是提供者,也是消费者
  • 2)消费者如何得知服务提供者的地址?
    服务提供者会在服务启动时将自身信息记录到注册中心,消费者可以从注册中心订阅和拉取服务消息
  • 3)消费者如何得知服务状态变更?
    服务提供者通过心跳机制向注册中心报告自身的健康状态(每隔段时间就向注册中心发送心跳),当心跳异常时,注册中心会将异常服务剔除掉,并通知订阅了该异常服务的消费者
  • 4)当提供者有多个实例时,消费者该选择哪个
    消费者可以通过负载均衡算法,从多个实例中选择一个

5、Eureka如何保证高可用

  • Eureka Server保证高可用,主要通过如下三个方面来实现:
    在这里插入图片描述1)多实例部署:将多个Eureka Server实例部署在不同的节点上,实现其高可用性,当其中某个实例发生故障时,其他实例仍然可以提供服务,并保存注册信息的一致性
    2)服务注册信息的复制:当一个服务实例向Eureka Server注册时,每个Eureka Server实例都会复制其他实例的注册信息,以保证数据的一致性,当某个Eureka Server实例发生故障时,其他实例可以接管其工作,保证整个系统的正常运行
    3)自我保护机制:当Eureka Server节点在一定时间内没有接收到心跳时,会进入自我保护模式,即Eureka不再剔除注册列表中的服务实例,以保护现有服务实例的注册信息,如此,可以防止由于网路抖动或其他原因导致的误删除

三、配置中心

1、微服务为什么需要配置中心

微服务架构中的每个服务通常都需要一些配置信息,如数据库连接地址、服务端口、日志级别等,这些配置可能因为不同环境、不同部署实例或动态运行时需要进行调整和管理
微服务的实例一般较多,如果每个都逐个去配置,就会造成较大的运维成本,因此,就需要集中化地管理这些配置

2、Nacos配置中心的原理

  • 配置中心需要完成配置信息的增删改查
    在这里插入图片描述

  • Nacos作为配置中心,其具体的实现大概可以分为如下几个部分:
    1)配置信息存储:Nacos默认使用内嵌数据库 Derby来存储配置信息(也可以采用MySQL等关系型数据库)
    2)注册配置信息:服务启动时,Nacos Client会向Nacos Server注册自己的配置信息(即将配置信息写入存储,并生成版本号)
    3)获取配置信息:服务运行期间,Nacos Client通过API从Nacos Server获取配置信息,Server根据键查找对应的配置信息,并返回给client
    4)监听配置变化:Nacos Client可以通过注册监听器的方式,实现对配置信息的监听,当配置信息发生变化时,Nacos Server会通知已注册的监听器,并触发相应的回调方法

3、Nacos配置中心长轮询机制

  • 一般来说,客户端和服务端的交互分为两种:推(Push)和 拉(Pull),Nacos在Pull的基础上,采用了长轮询来进行配置的动态刷新
  • 在长轮询模式下,客户端定时向服务端发起请求,检查配置信息是否发生变更,如果没有变更,服务端会hold住该请求,即暂时不返回结果,直到配置发生变化或达到一定的超时时间 ==> 通过长轮询的方式,Nacos客户端能够实时感知配置的变化,并及时获取最新的配置信息,同时,此种方式也降低了服务端的压力,避免了大量的长连接占用内存资源

    具体的实现过程如下:
    1)客户端发起Pull请求,服务端检查配置是否有变更,如果没有变更,则设置定时任务,在一段时间后执行,并将当前的客户端连接加入到等待队列中
    2)在等待期间,如果配置发生变化,服务端会立即返回结果给客户端,完成一次"推送"操作
    3)如果在等待期间没有配置变更,等到时间达到预设的超时时间后,服务端会自动返回结果给客户端
    4)如果在等待期间,通过Nacos Dashboard或API对配置进行了修改,会触发事件机制,服务端会遍历等待队列,找到发生变更的配置项对应的客户端连接,并将变更的数据通过连接返回,完成一次"推送"操作

四、远程调用

1、HTTP和RPC的区别

  • HTTP(Hypertext Transfer Protocol):一种应用层协议,强调的是网络通信
  • RPC(Remote Producer Call):一种用于分布式系统之间通信的协议,强调的是服务之间的远程调用

在微服务体系中,基于HTTP风格的远程调用通常使用Feign来实现,基于RPC的远程调用通常使用Dubbo来实现,其他区别如下:

HTTPRPC
用于传输超文本的协议用于实现分布式系统中不同节点之间通信的协议
基于请求-响应模式,客户端发送请求,服务端返回响应基于方法调用模型,客户端调用远程方法并等待结果
基于TCP协议,可使用其他传输层协议如TLS/SSL进行安全加密可使用多种传输协议,如TCP、UDP等
基于文本,常见的数据格式有JSON、XML等可使用二进制、JSON、Protocol、Buffers等数据格式
使用RESTful风格的接口进行定义,常见的方法有GET、POST、PUT、DELETE等使用IDL(接口定义语言)进行接口定义,如Protocol Buffers、Thrift等
支持跨语言通信,可使用HTTP作为通信协议实现不同语言之间的通信支持跨语言通信,可使用IDL生成不同语言的客户端和服务端代码
较灵活,适用于不同类型的应用场景,如Web开发、API调用等较高效,适用于需要高性能和低延迟的分布式系统

2、负载均衡算法

常见的负载均衡算法:

  • 轮询算法(Round Robin):按照顺序将请求依次分配给每个后端服务器,循环往复,当请求到达时,负载均衡器按照事先定义的顺序选择下一个服务器,轮询算法适用于后端服务器具有相同的处理能力和性能的场景
  • 加权轮询算法(Weighted Round Robin):在轮询算法的基础上增加了权重的概念,每个后端服务器都被赋予一个权重值,权重值越高,被选中的概率就越大,如此就可以根据服务器的处理能力和性能调整请求的分配比例,使性能较高的服务器能够处理更多的请求
  • 随机算法(Random):将请求随机分配给后端服务器,每个后端服务器具有相等的、被选中的概率,该算法简单且快速,但不能考虑服务器实际的负载情况,适用于后端服务器性能相近但无需考虑请求处理能力的场景
  • 加权随机算法(Weighted Random):在随机算法的基础上引入权重,每个后端服务器被赋予一个权重值,权重值越高,被选中的概率就越大,如此就可以根据服务器的处理能力和性能来调整请求的分配比例
  • 最少连接算法(Least Connection):根据后端服务器当前的连接数来决定请求的分配,负载均衡器会选择当前连接数最少的服务器进行请求分配,以保证后端服务器的负载均衡,此种算法适用于后端服务器的处理能力不同或请求的处理时间不同的场景
  • 哈希算法(Hash):根据请求的某个特定属性(如客户端IP地址、请求URL等)计算哈希值,然后根据哈希值选择相应的后端服务器
    常见的负载均衡器,比如Ribbon、Gateway等,基本都支持如上的负载均衡算法

五、服务容灾

1、服务雪崩

  • 在微服务中,如果一个或多个服务出现故障,依赖的服务还不断地发起请求或重试,则这些请求的压力会不断在下游堆积,导致下游服务的负载急剧增加,如此可能会导致故障的进一步加剧,可能会导致级联式的失败,甚至整个系统的崩溃,此即为服务雪崩
  • 为了防止服务雪崩,可以采取如下措施:
    1)服务高可用部署:确保各个服务都具备高可用性,通过冗余部署、故障转移等方式来减少单点故障的影响
    2)限流和熔断:对服务之间的请求进行限流和熔断,以防止过多的请求涌入导致后端服务不可用
    3)缓存和降级:合理使用缓存来减轻后端服务的负载压力,并在必要时进行服务降级,保证核心功能的可用性

2、服务熔断和降级

1)什么是服务熔断

  • 服务熔断是微服务架构中的容错机制,用于保护系统免受服务故障或异常的影响
  • 当某个服务出现故障或异常时,服务熔断可以快速隔离该服务,确保系统稳定可用 ==》通过监控服务的调用情况,当错误率或响应时间超过阈值时,触发熔断机制,后续请求将返回默认值或错误信息,避免资源浪费和系统崩溃
  • 服务熔断还支持自动恢复功能,重新尝试对故障服务的请求,确保服务恢复正常后可以继续使用

2)什么是服务降级

  • 服务降级也是微服务架构中的容错机制,用于在系统资源紧张或服务故障时保证核心功能的可用性
  • 当系统出现异常时,服务降级会主动屏蔽一些非核心或可选的功能,只提供最基本的功能,以确保系统的稳定运行。通过减少对资源的依赖,服务降级可保证系统的可用性和性能,可以根据业务需求和系统状况来制定策略,例如替换耗时操作、返回默认响应、返回静态错误页面等

3)熔断降级的实现方案

常见的服务熔断降级的实现方案有如下几种:

  • Spring Cloud的Hystrix,提供线程隔离、服务降级、请求缓存、请求合并等功能,与Spring Cloud其他组件无缝集成,但官方已宣布停⽌维护Hystrix,推荐使⽤Resilience4j代替
  • Spring Cloud Alibaba的Sentinel,提供实时监控、流量控制、熔断降级等功能,与Spring Cloud Alibaba生态紧密集成
  • Dubbo自带的熔断降级机制,可通过配置实现服务熔断和降级,与Dubbo的RPC框架紧密集成

3、Hystrix如何实现服务容错

Hystrix虽不再更新,但还是非常经典的服务容错开源库,Hystrix提供了多种机制来保护系统:
1)服务熔断(Circuit Breaker):Hystrix通过设置阈值来监控服务的错误率和响应时间,当错误率或响应时间超过设定的阈值时,熔断器将会打开,后续的请求将不再发送到实际的服务提供方,而是返回预设的默认值或错误信息,从而实现快速隔离故障服务,防止故障扩散,提高系统的稳定性和可用性
2)服务降级(Fallback):当服务熔断器打开时,Hystrix可以提供一个备用的降级方法或返回默认值,以保证系统可以继续正常运行,开发者可以定义降级逻辑,例如返回缓存数据、执行简化的逻辑或调用其他可靠的服务,以提供有限但可用的功能

import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
 /**
 * 服务降级示例
 **/
 @Service
 public class MyService {
 @HystrixCommand(fallbackMethod = "fallbackMethod")
 public String myServiceMethod() {
   // 实际的服务调⽤逻辑
   // ...
 }
 public String fallbackMethod() {
   // 降级⽅法的逻辑,当服务调⽤失败时会执⾏此⽅法
   // 可以返回默认值或执⾏其他备⽤逻辑
   // ...
    }
 }

3)请求缓存(Request Caching):Hystrix缓存同一请求的响应结果,当下次请求相同的数据时,直接从缓存中获取,避免重复的网络请求,提高系统的性能和响应速度
4)请求合并(Request Collapsing):Hystrix将多个并发请求合并为一个批量请求,减少网络开销和资源占用,这在高并发场景下,可以有效地减少请求次数,提高系统性能
5)实时监控和度量(Real-time Monitoring and Metrics):Hystrix提供了实时监控和度量功能,可以对服务的执行情况进行监控和统计,包括容错率、响应时间、并发量等指标,通过监控数据,可及时地发现和解决服务故障或性能问题
6)线程池隔离(Thread Pool Isolation):Hystrix将每个依赖服务的请求都放在独立的线程池中执行,避免因某个服务的故障导致整个系统的线程资源耗尽,通过线程池隔离,可提高系统的稳定性和可用性

4、Sentinel如何实现限流

  • Sentinel通过动态管理限流规则,根据定义的规则对请求进行限流控制,具体的实现步骤如下:
    1)定义资源:在Sentinel中,资源可以是URL、方法等,用于标识需要进行限流的请求
    2)配置限流规则:在Sentinel的配置文件中定义资源的限流规则,规则可以包括资源名称、限流阈值、限流模式(令牌桶或漏桶)等
    3)监控流量:Sentinel会监控每个资源的流量请求,包括请求的QPS(每秒请求数)、线程数、响应时间等
    4)限流控制:当请求到达时,Sentinel会根据资源的限流规则 判断是否需要进行限流控制,如果请求超过了限流阈值,则可以进行限制、拒绝或进行其他降级处理

4.1、Sentinel采用的限流算法

  • Sentinel使用滑动窗口算法来实现限流的(基于时间窗口,将一段时间划分为多个小的时间窗口,并在每个时间窗口内统计请求的数量),通过动态地调整时间窗口的大小和滑动步长,可以较为精确地控制请求的通过速率

4.2、Sentinel如何实现集群限流

未完待续…

微服务面试篇笔记 分布式系统有三个指标c一致性 a可用性 p分区容错性然而 分布式系统无法同时满足这三个指标结论叫cap原理。 阅读详情

相关推荐

JAVA面试大全之微服务篇

微服务以前所有的代码都放在同一个工程中、部署在同一个服务器、同一项目的不同模块不同功能互相抢占资源,微服务就是将工程根据不同的业务规则拆分成微服务,部署在不同的服务器上,服务之间相互调用,java中有的微服务有dubbo(只能用来做微服务)、springcloud( 提供了服务的发现、断路器等)。微服务的特点按业务划分为一个独立运行的程序,即服务单元服务之间通过HTTP协议相互通信自动化部署可以用不同的编程语言可以用不同的存储技术服务集中化管理微服务是一个分布式系统微服务的优势。

hao_kkkkk的专栏 1503

没有Spring Cloud微服务相关经验,如何应对当下Java面试?

SpringCloud想必每一位Java程序员都不会陌生,很多人一度把他称之为“微服务全家桶”,它通过简单的注解,就能快速地架构微服务,这也是SpringCloud的最大优势。但是最近有去面试过的朋友就会发现,现在面试你要是没有SpringCloud经验基本面试机会都不会有。

Javatutouhouduan的博客 702

10万字提炼JAVA面试资料,Offer收割机

资源包含java面试的大部分内容,包含如下内容: 1、Java基础 2、JVM篇 3、MQ篇 4、多线程与并发 5、微服务(SpringCloud、Dubbo、Zookeeper等) 6、网络篇 7、ElasticSearch篇 8、软实力篇:面试注意指导、简历指导、谈薪要点 包含并且不局限于以上内容

微服务常见面试题总结

在微服务中,假如一个或者多个服务出现故障,如果这时候,依赖的服务还在不断发起请求,或者重试,那么这些请求的压力会不断在下游堆积,导致下游服务的负载急剧增加。不断累计之下,可能会导致故障的进一步加剧,可能会导致整个系统崩溃,这就叫服务雪崩。服务高可用部署:确保各个服务都具备高可用性,通过冗余部署、故障转移等方式来减少单点故障的影响。限流和熔断:对服务之间的请求进行限流和熔断,以防止过多的请求涌入导致后端服务不可用。

夏日 の blog 2515

自动驾驶开发者必看:如何用Impromptu VLA数据集提升模型在乡村道路的表现(附实战代码)

本文为自动驾驶开发者提供了利用Impromptu VLA开源数据集提升模型在乡村道路等极端场景表现的实战指南。该数据集专门针对边界模糊道路、非常规障碍物等非结构化环境,通过精选的8万多个极端场景片段,帮助模型弥补数据分布偏差。文章详细介绍了环境搭建、数据准备、模型微调及性能评估的全流程,并附有实战代码,旨在系统性提升自动驾驶系统在长尾场景下的鲁棒性。

t8u9v0w1x的博客 243

【可穿戴算法开发】-PPG信号检测方法

文章目录一、PPG(光电容积脉搏波法)信号的检测原理二.PPG技术目前存在的问题(挑战)三. **心电信号产生的原理** 随着经济的发展,在人们生活水平提高的同时,高脂肪摄入和低运动量成为了人们普遍的生活模式,近年来高血压、高血脂已经发展为危险性最高的病症。心电、血压、血氧等生理参数是预防和分析心血管疾病的重要生理参数。 常用的心电测量仪器有:多导ECG心电图仪、PPG心率检测器、心率带等; 常...

wxq_1993的博客 2万+

Java微服务框架面试总结(全面,实时更新)

面向面试学习,单点突破

CSBIGDOG的博客 1636

【β-Boltzmann探索策略】

𝜀是一个介于0和1之间的参数,用于控制探索和利用的比例。当𝜀较大时,智能体更倾向于探索;当𝜀较小时,智能体更倾向于利用已知信息。

m0_59385870的博客 1087

微服务常见面试题解析、问题说明及参考话术,实用干货

微服务知识讲解,微服务面试,Spring Cloud、Eureka、Sentinel、Gateway、Hystix等干货

怀揣梦想,一颗执着于技术的心从未磨灭,内心住着一颗顽强的小强时刻提醒自己层层突破自我,同时也成就他人 1504

CIC-IDS-2018数据集高效预处理实战:从数据清洗到特征整合

本文详细介绍了CIC-IDS-2018数据集的高效预处理方法,从数据清洗到特征整合的全流程实战。通过内存优化、异常值处理和特征工程等技巧,帮助网络安全研究人员快速处理大规模网络流量数据,提升机器学习模型的训练效率和准确率。特别针对特征数据的预处理提供了实用代码示例和优化建议。

weixin_29274969的博客 502

matlab 求解多项式的根 四种方法

matlab 求解多项式的根 四种方法 方法一 %多项式求根函数roots p=[1,-3,1];%建立多项式系数向量p x=roots(p)%求多项式的根 x=-5:0.1:5;%步长为0.1 y1=x.*x-3*x+1;%构建一个函数 y2=zeros(size(x));%产生一个与x同大小的零向量 plot(x,y1,x,y2); 方法二 %利用函数fzero f=@(x)x*x-3*x+1; x1=fzero(f,0.5) x2=fzero(f,2.5) 方法三 %利用f

weixin_57038822的博客 1万+

Java面试通关要点汇总集(基础篇+核心篇+框架篇+微服务篇)

基础篇 基本功 面向对象的特征 final, finally, finalize 的区别 int 和 Integer 有什么区别 重载和重写的区别 抽象类和接口有什么区别 说说反射的用途及实现 说说自定义注解的场景及实现 HTTP 请求的 GET 与 POST 方式的区别 session 与 cookie 区别 session 分布式处理 JDBC 流程 MVC 设计思想 equals 与 == 的区别 集合 List 和 Set 区别 List 和 Map 区别 A.

如果频繁就私信一下呢 296

Qt C++ + Qt 3D 的数字孪生工厂

以下是一个基于 **Qt C++ + Qt 3D** 的数字孪生工厂完整源码示例,集成了 **Qt 3D** 产线建模和 **WebSocket** 实时数据交互。ui->qualifiedProductsLabel->setText(QString("合格产品: %1").arg(data.qualifiedProducts));ui->totalProductsLabel->setText(QString("总产量: %1").arg(data.totalProducts));

寒寒豆豆软件公司的博客 149

黑马-Cloud21版-面试篇11:微服务常见面试题

这个题目主要考察对SpringCloud的组件基本了解:简单SpringCloud包含的组件很多,有很多功能是重复的。其中最常用组件包括:注册中心组件:Eureka、Nacos等负载均衡组件:Ribbon远程调用组件:OpenFeign网关组件:Zuul、Gateway服务保护组件:Hystrix、Sentinel服务配置管理组件:SpringCloudConfig、Nacos。

aa35434的博客 2646

使用 Simulink/Simscape Electrical/Stateflow,构建一个并网逆变器短路故障动态响应与恢复策略仿真模型

本文基于Simulink平台,详细介绍了并网逆变器短路故障的动态响应与恢复策略仿真方法。主要内容包括:1)构建包含热模型的高精度逆变器模型;2)模拟IGBT击穿和桥臂直通两种短路故障;3)设计基于Stateflow的微秒级快速保护逻辑;4)实现放电、去磁、自检、重启的完整恢复流程。仿真结果表明,所提出的保护方案能在200μs内有效限制故障电流,避免器件永久损坏,并通过标准化恢复流程实现系统安全重启。文章还探讨了硬件保护协同、多级保护和预测保护等高级策略,为电力电子系统安全防护提供了实用解决方案。

xiaoheshang_123的博客 107

【YOLOv12多模态融合改进】| TFAM:时序融合注意力模块 | 引入通道 - 空间双分支注意力机制,解决双模态特征融合中时序关联不足的问题

TFAM模块通过时序信息驱动的注意力机制,解决了双时相特征融合中时序关联不足的问题,实现了更精准的变化区域定位和特征表示。其结构轻量、泛化性强,为变化检测任务提供了一种高效的特征融合解决方案。

Limiiiing的博客 867

【java面试】微服务篇

服务雪崩:一个服务失败,导致整个链路的服务都失败的情况。如图,服务D宕机导致全部服务失败的情况。为什么需要监控微服务?微服务是如何监控的?并发确实比较大(突发流量)防止用户恶意刷接口可以对分布式事务方案的指导,分布式系统设计方向,根据业务指导使用正确的技术选择只要是微服务就会发起远程调用,那么就会存在分布式事务。打开页面就向后台发送请求,为页面生成一个唯一token,存储到redis(用户是key token就是value),返回token给前端。

qq_52200849的博客 1519

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

微服务面试篇

TCC模式的每个阶段是做什么的?Try:资源检查和预留Confirm:业务执行和提交Cancel:预留资源的释放TCC的优点是什么?一阶段完成直接提交事务,释放数据库资源,性能好相比AT模型,无需生成快照,无需使用全局锁,性能最强不依赖数据库事务,而是依赖补偿操作,可以用于非事务型数据库TCC的缺点是什么?有代码侵入,需要人为编写try、Confirm和Cancel接口,太麻烦软状态,事务是最终一致需要考虑Confirm和Cancel的失败情况,做好幂等处理、事务悬挂和空回滚处理。

M_Reus_11的博客 1811

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

面试八股之微服务篇

面试详细讲解:Eureka : 注册中心、Ribbon : 负载均衡、Feign : 远程调用、Hystrix : 服务熔断、Zuul/Gateway : 网关

做一个善良的人,做好自己的事,如果愿意,再发一份光。 1314

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

《Java 后端面试经》微服务篇

一致性(Consistency)所有的的节点在同一时间都能看到相同的数据,数据的更新是一致的,所有数据的变化都是同步的。可用性(Availability):即使集群中的部分节点出现故障,服务依然一直可用,能够保证在正常的响应时间内对客户端的读写请求进行响应。分区容错性(Partition tolerance):当分布式系统出现网络分区的时候,仍然能够对外提供服务。CAP 理论中分区容错性(Partition tolerance) 是一定要满足的。..............................

华仔仔的博客 3230

JAVA面试微服务篇

Java面试微服务篇

kingandsong的博客 3918

面试-微服务篇

创建类实现rule接口,可以指定负载均衡策略(全局)在客户端的配置文件中,可以配置某一个服务调用的负载均衡策略(局部)什么是服务雪崩?熔断降级(解决)限流(预防)服务雪崩:一个服务失败,导致整条链路的服务都失败的情况服务降级:服务自我保护的一种方式,或者保护下游服务的一种方式,用于确保服务不会受请求突增影响变得不可用,确保服务不会崩溃。服务熔断:hystrix熔断机制,用于监控微服务调用情况,默认是关闭的,如果需要开启需要在引导类上添加注解@EnableCircuitBreaker。

略 1492

11-微服务面试篇

TCC模式的每个阶段是做什么的?Try:资源检查和预留Confirm:业务执行和提交Cancel:预留资源的释放TCC的优点是什么?一阶段完成直接提交事务,释放数据库资源,性能好相比AT模型,无需生成快照,无需使用全局锁,性能最强不依赖数据库事务,而是依赖补偿操作,可以用于非事务型数据库TCC的缺点是什么?有代码侵入,需要人为编写try、Confirm和Cancel接口,太麻烦软状态,事务是最终一致需要考虑Confirm和Cancel的失败情况,做好幂等处理、事务悬挂和空回滚处理。

qq_56947957的博客 1578

面试笔记之微服务篇

最近刚学完SpringCloudNetflix,但是学完之后感觉虽然能写简单的微服务项目了,但是对微服务的一些组件还是一知半解的,甚至对一些组件作用都难以窥其全貌,所以特出此文章,了解微服务的组件作用,并且顺便整理一下微服务的面试题。....................................

m0_61035392的博客 371
上一篇: 如何高效且优雅地使用Redis
下一篇: 面试总结之Spring篇
咸鱼也有爱
博客等级 码龄7年 133粉丝 47原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值