当前位置:   article > 正文

java面试题微服务篇_java微服务面试官问题

java微服务面试官问题

1.Spring Cloud

1.1概述

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

1.2Nacos

1.2.1Nacos服务注册及健康状态如何检测?

nacos服务客户端(要注册到nacos的服务)启动时会每隔一段时间(默认为5秒)向nacos发送心跳包,nacos注册中心15秒内没有检测到心跳包会默认认为nacos处于一种不健康状态,30秒还收不到心跳包则认为这个服务已不可用。

1.2.2Nacos的配置管理模型以及配置数据的获取?

Nacos配置管理模型中,为了实现更好的环境隔离给出了namespace,group,dataId的感念,一个配置中心可以有多个命名空间,一个命名空间可以有多个分组,一个分组内可以有多个groupId,服务启动时会每隔30描述向配置中心请求一次数据,2.0之前默认采取的时长轮询拉取模式。

1.3Sentinel

1.3.1为什么要限流,Sentinel 限流常用算法?

限流的目的是为了保证服务更加可靠的运行,不至于系统在遇到突发流量时,出现系统宕机的现象。常用的限流算法有计数器法,滑动窗口算法,漏斗算法,漏桶算法等。

1.4Gateway

1.4.1网关层面如何实现负载均衡以及常用算法?

网关层面的负载均衡我们借助了Ribbon进行实现,常用算法有轮询,权重,随机,hash等,这个算法都可以在配置中心进行配置,然后基于业务不同,做动态调整。

1.5Ribbon

Ribbon:负载均衡客户端,需要结合RestTemplate(HttpClient)进行服务的调用

  • 默认的负载均衡:轮询
  • 服务器启动时,先从Eureka server获取服务列表,然后在请求微服务时,通过RestTemplate进行http调用
  • 自定义访问策略 实现步骤: 自定义一个类, 实现Rule接口,那么我们自定义的类就是一个策略类(代码里面就是算法,确定访问方式) 方式一:
    在定义的类上面加上@Configuration这个注解(注意: 该配置类不能被springboot扫描到)
    方式二:在全局配置文件application.yml配置 策略类.

1.6Feign

Feign:Feign默认集成了Ribbon,用它来管理服务(管理controller配置的路径)
Feign可以通过@FeignClient注解标识一个接口,通过该接口生成一个代理类来进行远程的微服务调用。

1.7Ribbon和Feign的区别

  • Ribbon添加maven依赖 spring-starter-ribbon 使用@RibbonClient(value=“服务名称”)
    使用RestTemplate调用远程服务对应的方法
  • feign添加maven依赖 spring-starter-feign 服务提供方提供对外接口 调用方使用
    在接口上使用@FeignClient(“指定服务名”)
  • Ribbon和Feign的区别: Ribbon和Feign都是用于调用其他服务的,不过方式不同。
  • 启动类使用的注解不同,Ribbon用的是@RibbonClient,Feign用的是@EnableFeignClients。
  • 服务的指定位置不同,Ribbon是在@RibbonClient注解上声明,Feign则是在定义抽象方法的接口中使用@FeignClient声明。
  • 调用方式不同,Ribbon需要自己构建http请求,模拟http请求然后使用RestTemplate发送给其他服务,步骤相当繁琐。Feign则是在Ribbon的基础上进行了一次改进,采用接口的方式,将需要调用的其他服务的方法定义成抽象方法即可,不需要自己构建http请求。不过要注意的是抽象方法的注解、方法签名要和提供服务的方法完全一致。

2.项目技术说明

2.1前后端分离

前后端分离的目的: 实现前端和后台的数据不耦合,最终的效果是前后端都能够独立存在
前端人员开发: 独立开发前端代码
对于前端工程师:调用接口地址,接收json,解析json
后端人员开发: 独立开发后端代码
对于后端java工程师:提供业务的具体接口,响应json数据
后端人员通过swagger自动生成接口地址文档,
swagger使用参考地址:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/795866
推荐阅读
相关标签
  

闽ICP备14008679号