vlambda博客
学习文章列表

【039期】JavaEE面试题(十一):Spring Cloud(2)

【039期】JavaEE面试题(十一):Spring Cloud(2)

【039期】JavaEE面试题(十一):Spring Cloud(2)

2020年 百日百更原创 Java最全面试题库之往期回顾






【032期】JavaEE面试题(四)Spring(2)



开篇介绍

大家好,我是Java最全面试题库提裤姐今天这篇是JavaEE系列的第十一篇,主要总结了SpringCloud相关的问题,这篇是第二篇;在后续,会沿着第一篇开篇的知识线路一直总结下去,做到日更!如果我能做到百日百更,希望你也可以跟着百日百刷,一百天养成一个好习惯。


Q:

Eureka怎么实现高可用?

集群:

注册多台 Eureka,把 SpringCloud服务互相注册,客户端从 Eureka获取信息时,按照 Eureka的顺序来访问。


Q:

 ZuulFilter常用有哪些方法?

  • run():过滤器的具体业务逻辑

  • shouldFilter():判断过滤器是否有效

  • filterOrder():过滤器执行顺序

  • filterType():过滤器拦截位置


Q:

如何实现动态Zuul网关路由转发?

通过path配置拦截请求,通过 Serviceld到配置中心获取转发的服务列表,zuul内部使用 Ribbon实现本地负载均衡和转发。


Q:

Zuul网关如何搭建集群?

使用Nginx的 upstream设置Zuul服务集群,通过location拦截请求并转发到 upstream,默认使用轮询机制对Zuul集群发送请求。

Q:

负载平衡的意义什么?

通俗易懂的理解:
集群:是把一个的事情交给多个人去做,假如要做1000个产品给一个人做要10天,叫10个人做就是一天;
负载均衡:用来控制集群,他把做的最多的人让他慢慢做休息会,把做的最少的人让他加量让他做多点。

在计算中:
负载平衡可以改善跨计算机计算机集群,网络链接,中央处理单元或磁盘驱动器等多种计算资源的工作负载分布,负载平衡旨在优化资源使用,最大化吞吐量,最小化响应时间并避免任何单一资源的过载,使用多个组件进行负载平衡,而不是单个组件,可能会通过冗余来提高可靠性和可用性,负载平衡通常及专用软件或硬件,例如多层交换机或域名系统服务器进程。

Q:

服务降级底层是如何实现的? 

Hystrix实现服务降级的功能是通过重写 HystrixCommand中的 getFallback()方法,当 Hystrix的run方法或 construct执行发生误时转而执行 getFallback()方法。


Q:

什么是 Spring Cloud Bus? 

  • Spring Cloud Bus就像个分布式执行器,用于扩展的 Spring Boot应用程序的配置文件,但也可以用作应用程序之间的通信通道。

  • Spring Cloud Bus不能单独完成通信,需要配合MQ支持

  • Spring Cloud Bus一般是配合Spring Cloud Config做配置中心的

  • Spring Cloud  config实时刷新也必须采用 SpringCloud Bus消息总线

Q:

Spring Cloud Bus 原理?

发送端(endpoint)构造事件event,将其publish到context上下文中(spring cloud bus有一个父上下文,bootstrap),然后将事件发送到channel中(json串message),接收端从channel中获取到message,将message转为事件event,然后将event事件publish到context上下文中,最后接收端(Listener)收到event,调用服务进行处理。

整个流程中,只有发送/接收端从context上下文中取事件和发送事件是需要我们在代码中明确写出来的,其它部分都由框架封装完成。

Q:

SpringCloud Config可以实现实时刷新吗?

springcloud config实时刷新采用 SpringCloud Bus消息总线

Q:

什么是服务熔断?什么是服务降级?

熔断机制:
是应对雪崩效应的一种微服务链路保护机制
当某个微服务不可用或者响应时间太长时,会进行服务降级,进而熔断该节点微服务的调用,快速返回“错误”的响应信息。当检测到该节点微服务调用响应正常后恢复调用链路。
在SpringCloud框架里熔断机制通过
Hystrix实现,Hystrix会监控微服务间调用的状况,当失败的调用到一定阈值,缺省是5秒内调用20次,如果失败,就会启动熔断机制。

服务降级:
一般是从整体负荷考虑。就是当某个服务熔断之后,服务器将不再被调用,此时客户端可以自己准备一个本地的fallback回调,返回一个缺省值


Q:

什么是服务雪崩效应?

雪崩效应是在大型互联网项目中,当某个服务发生宕机时,调用这个服务的其他服务也会发生宕机,大型项目的微服务之间的调用是互通的,这样就会将服务的不可用逐步扩大到各个其他服务中,从而使整个项目的服务宕机崩溃





“一个专注于分享各类Java面试题的号主,长按二维码关注我吧 ”

祝大家都能拿到心仪的offer!






【039期】JavaEE面试题(十一):Spring Cloud(2)


【039期】JavaEE面试题(十一):Spring Cloud(2)
【039期】JavaEE面试题(十一):Spring Cloud(2)

等风也等你



文章都看完了不点个 吗