SpringCloud五大组件有哪些?
面试题:
SpringCloud注册中心:
服务注册和发现是什么意思? Spring Cloud如何实现服务注册发现?
微服务中必须使用的组件,考察我们使用微服务的程度
注册中心的核心作用是:服务注册和发现
常见的注册中心:eureka 、nocas 、zookeeper
面试题:
服务注册和发现是什么意思?SpringCloud如何实现服务注册发现?
我们当时项目采用的eureka作为注册中心,这个也是spring cloud体系中的一个核心组件
服务注册:服务提供者需要把自己的信息注册到eureka,由eureka来保存这些信息,比如服务器名称,ip,端口等等
服务发现:消费者向eureka拉取服务列表信息,如果服务提供者有集群,则消费者会利用负载均衡算法,选择一个发起调用
服务监控:服务提供者每30秒会向eureka发送心跳,报告健康状态,如果eureka服务90秒魅接收到心跳,从eureka中剔除
nacos与eureka的区别:
面试题:
Nacos与eureka的共同点
1.都支持服务注册和服务拉取
2.都支持服务提供者心跳方式做健康检测
Nacos与Eureka的区别
1.Nacos支持服务端主动检测提供者状态;临时实例采用心跳模式,非临时实例采用主动检测模式
2.临时实例心跳不正常会被剔除,非临时实例则不会被剔除
3.Nacos支持服务列表变更的消息推送模式,服务列表更新更及时
4.Nacos集群默认才用AP方式,当集群中存在非临时实例时,采用CP 模式;Eureka采用AP模式(
AP代表可以同时保证可用性、分区容错性
CP代表可以同时保证一致性、分区容错性
)
5.Nacos还支持了配置中心,eureka只有注册中心,这也是选择使用nacos的一个重要原因。
负载均衡是如何实现的?
面试题:
Ribbon负载均衡策略有哪些?
RoundRobinRule:简单轮询服务列表来选择服务器
WeighteResponseTimeRule:按照权重来选择服务器,响应时间越长,权重越小
RandomRule:随机选择一个可用的服务器
BestAvailableRule:忽略那些短路的服务器,选择并发数较低的服务器
RetryRule:重试机制的选择逻辑
AvailabilityFilteringRule:可用性敏感策略,先过滤非健康的,再选择连接数较小的实例
ZoneAvoidanceRule:以区域可用的服务器为基础进行服务器的选择。使用Zone对服务器进行分类,这个Zone可以理解为一个机房、一个机架等。然后再对Zone内的多个服务做轮询。
什么是服务雪崩,怎么解决这个问题?
服务降级:
服务降级是服务自我保护的一种方式,用于确保服务不会受请求突增影响变得不可用,确保服务不会崩溃
服务熔断:
Hystrix熔断机制,用于监控微服务调用情况,默认是关闭的,如果需要开启需要在引导类上添加注解:@EnableCircuitBreaker。如果检测到10秒内请求的失败率超过50%,就出发熔断机制,之后每隔5秒重新尝试请求微服务,如果微服务不能响应继续走熔断机制。如果微服务可达,则关闭熔断机制,恢复正常请求。
面试题:
微服务是如何监控的?
面试题: