微服务面试题

目录

springcloud核心组件有哪些,分别有什么作用

微服务架构原理是什么

注册中心的原理是什么

配置中心的原理是什么

配置中心是如何实现自动刷新的

配置中心是如何保证数据安全的

用zookeeper和eureka做注册中心有什么区别

Spring Cloud和Dubbo有哪些区别

Ribbon负载均衡原理是什么

微服务熔断降级机制是什么

什么是Hystrix?实现原理是什么

ZAB协议是什么

注册中心挂了,或者服务挂了,应该如何处理


springcloud核心组件有哪些,分别有什么作用

服务注册与发现——Netflix Eureka、Nacos、Zookeeper
客户端负载均衡——Netflix Ribbon、SpringCloud LoadBalancer服务熔断器——Netflix Hystrix、Alibaba Sentinel、Resilience4]服务网关——Netflix Zuul、SpringCloud Gateway
服务接口调用——Netflix Feign、Resttemplate、Openfeign链路追踪——Netflix Sleuth、skywalking.Pinpoint
聚合Hystrix监控数据——Netflix Turbine
监控中心---- SpringBoot Admin
配置中心——Spring Cloud Config . Apollo、nacos

微服务架构原理是什么

主要是面向SOA(面向服务的架构)理念,更细小粒度服务的拆分,将功能分解到各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持。

注册中心的原理是什么

服务启动后向Eureka注册,Eureka Server会将注册信息向其他Eureka Server进行同步,当服务消费者要调用服务提供者,则向服务注册中心获取服务提供者地址,然后会将服务提供者地址缓存在本地,下次再调用时,则直接从本地缓存中获取服务列表来完成服务调用

配置中心的原理是什么

在服务运行之前,将所需的配置信息从配置仓库拉取到本地服务,达到统一化配置管理的目的
 

配置中心是如何实现自动刷新的

1.配置中心Server端承担起配置刷新的职责
2、提交配置触发post请求给server端的bus/refresh接口3、server端接收到请求并发送给Spring Cloud Bus总线
4、Spring Cloud bus接到消息并通知给其它连接到总线的客户端5、其它客户端接收到通知,请求Server端获取最新配置
6、全部客户端均获取到最新的配置


配置中心是如何保证数据安全的

1.保证容器文件访问的安全性,即保证所有的网络资源请求都需要登录

⒉将配置中心里所有配置文件中的密码进行加密,保证其密文性
3.开发环境禁止拉取生产环境的配置文件

用zookeeper和eureka做注册中心有什么区别

Zookeeper保证的是CP(一致性,容错性),在存储数据的时候,它就会尽可能努力的通知到集群当中其它的一些结点。而Eureka则是AP(可用性,容错性【网络分区】)。数据的一致性和服务的可用性作取舍。然而作为注册中心的话,我们其实并不太需要数据的一致性特别的强。由于网络环境的不可靠,即使非常强的一致性,我们结点之间也不能保证互相通讯,并且服务的客户端也会在本地存储服务列表的缓存,也不需要每一次都去注册中心获取最新的服务列表。Zookeeper最开始的时候是在dubbo环境下使用,现在基本不使用zookeeper作为注册中心。

Spring Cloud和Dubbo有哪些区别

1.dubbo在传输数据的时候,使用的是dubbo协议,在传输的时候,会将包装好的对象直接发送给接收方,对象直接转成二进制来产生网络通讯,把数据包传递到对方,这样的话,不管是从序列化还是传输的过程,速度都是非常快的。

2.Spring cloud使用的是http协议,并且配合了restful风格的API,数据会封装成json,那么在数据传输的时候,json还会再转成二进制,再通过网络传输过去,我们知道所有的数据通过网络传输只能传输二进制数据,那么在这层协议上,dubbo就优于spring cloud。因为spring cloud底层的协议就是基于TCP/IP协议,而在TCP/IP协议之上,又封装了http协议。以及数据持久化的时候使用了json格式,不管是协议的包装层数上,还是数据的序列化和反序列化的效率上都不及dubbo高。

3.Dubbo只是实现了服务治理(服务的注册和监控中心),而Spring Cloud下面有几十个子项目分别覆盖了微服务架构下的方方面面,服务治理只是其中的一个方面,一定程度来说,Dubbo只是完成了远程调度,Dubbo只是Spring Cloud Netflix中的一个子集。

Ribbon负载均衡原理是什么
 

主要是靠拦截器,拦截住带有ribbon注解的方法,然后将方法转换成ip地址

1, Ribbon通过ILoadBalancer接口对外提供统一的选择服务器(Server)的功能,此接口会根据不同的负载均衡策略(lRule)选择合适的Server返回给使用者。
2, lRule是负载均衡策略的抽象,lLoadBalancer通过调用IRule的choose()方法返回Server
3 , lPing用来检测Server是否可用,lLoadBalancer的实现类维护一个Timer每隔10s检测一次Server的可用状态4, IClientConfig主要定义了用于初始化各种客户端和负载均衡器的配置信息,器实现类为DefaultClientConfiglmpl


微服务熔断降级机制是什么

微服务框架是许多服务互相调用的,要是不做任何保护的话,某一个服务挂了,就会引起连锁反应,导致别的服务也挂。Hystrix是隔离、熔断以及降级的一个框架。如果调用某服务报错(或者挂了),就对该服务熔断,在5分钟内请求此服务直接就返回一个默认值,不需要每次都卡几秒,这个过程,就是所谓的熔断。但是熔断了之后就会少调用一个服务,此时需要做下标记,标记本来需要做什么业务,但是因为服务挂了,暂时没有做,等该服务恢复了,就可以手工处理这些业务。这个过程,就是所谓的降级。

什么是Hystrix?实现原理是什么

Hystrix是一个延迟和容错库,旨在隔离对远程系统、服务和第三方库的访问点,停止级联故障,并在不可避免发生故障的复杂分布式系统中实现快速恢复。主要靠Spring的AOP实现。

实现原理
正常情况下,断路器关闭,服务消费者正常请求微服务
一段事件内,失败率达到一定阈值,断路器将断开,此时不再请求服务提供者,而是只是快速失败的方法(断路方法)
断路器打开一段时间,自动进入“半开"状态,此时,断路器可允许一个请求方法服务提供者,如果请求调用成功,则关闭断路器,否则继续保持断路器打开状态。
断路器hystrix是保证了局部发生的错误,不会扩展到整个系统,从而保证系统的即使出现局部问题也不会造成系统雪崩
 

ZAB协议是什么

ZAB协议是paxos协议的简化版本实现了主要以下几个功能:
1.ZAB协议确保那些已经在Leader服务器上提交(Commit)的事务最终被所有的服务器提交。

2.ZAB协议确保再leader重启之后继续同步之前没有完成的数据
3.ZAB协议实现了Leader选举
4.ZAB协议实现了在最快速度同步到半数节点,并会尽快的把数据同步到所有节点

注册中心挂了,或者服务挂了,应该如何处理

注册中心挂了,可以读取本地持久化里的配置
服务挂了应该配有服务监控中心感知到服务下线后可以通过配置的邮件通知相关人员排查问题


 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龍弟-idea

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值