0


java面试题——Nacos常见面试题

1、服务注册与调用入门

1.为什么要将服务注册到nacos?为了更好的查找这些服务


2.Nacos服务是如何判定服务实例的状态?
通过发送心跳包,5秒发送一次,如果15秒没有回应,则说明服务出现了问题,
如果30秒后没有回应,则说明服务已经停止。


3.服务消费方是如何调用服务提供方的服务的?
通过创建RestTemplate对象来实现。


4.Nacos中的负载均衡底层是如何实现的?
通过Ribbon实现,Ribbon中定义了一些负载均衡算法,然后基于这些算法从服务
实例中获取一个实例为消费方提供服务。


5.Ribbon 是什么?Ribbon 可以解决什么问题?
Ribbon是Netflix公司提供的负载均衡客户端,
Ribbon可以基于负载均衡策略进行服务调用, 所有策略都会实现IRule接口


6.Ribbon 内置的负载策略都有哪些?
8种,可以通过查看IRule接口的实现类进行查看


7.@LoadBalanced的作用是什么?
描述RestTemplate对象,用于告诉Spring框架,在使用RestTempalte进行
服务调用时,这个调用过程会被一个拦截器进行拦截,然后在拦截器内部,启动
负载均衡策略。

2、服务负载均衡设计及实现

**@Bean注解的作用?**(一般用于配置类内部,描述相关方法,用于告诉spring此方法的返回值要交给spring容器管理,bean的名字默认为方法名,假如需要指定名字可以@Bean("bean的名字"),最多的应用场景是整合第三方资源-对象)

** @Autowired注解的作用?**(此注解用于描述属性,构造方法,set方法等,用于告诉sprin框架,按照一定的规则为属性进行DI操作,默认按属性,方法参数类型查找对应的对象。假如只找到一个,则直接注入,类型多个时还会按照属性名或方法参数名进行值的注入,加入名字也不同,就会报错)


**Nacos中的负载均衡底层是如何实现的?**(通过Ribbon实现,Ribbon中定义了一些负载均衡算法,然后基于这些算法从服务实例中获取一个实例为消费方法提供服务)

** Ribbon是什么?**(Netflix公司提供的负载均衡客户端,一般应用于服务的消费方法)


** Ribbon可以解决什么问题?**(基于负载均衡策略进行服务调用,所有策略都会实现IRule接口)


** Ribbon内置的负载均衡策略有哪些?**(8种,可以通过查看IRule接口的实现类进行分析)


** @LoadBalanced的作用是什么?**(描述RestTemplate对象,用于告诉spring框架,在使用RestTemplate进行服务调用时,这个调用过程会被一个拦截器进行拦截,然后在拦截器内部启动负载均衡策略)


**我们可以自己定义负载均衡策略吗?**(可以,基于IRule接口进行策略定义,也可以参考NacosRule进行实现)

3、基于Feign的远程服务调用

** 为什么使用feign?**(基于Feign可以更加友好的实现服务调用,简化服务消费方对服务提供方方法的调用)


**FeignClient注解的作用是什么?**(告诉Feign Starte,在项目启动时,为此注解描述的接口创建实现类-代理类)

** Feign方式的调用,底层负载均衡是如何实现的?**(Ribbon)


**EnableFeignClients注解的作用是什么?**(描述配置类,例如启动类)

4、配置中心

  1. 什么是配置中心?(存储项目配置信息的一个服务)
    
  2. 为什么要使用配置中心?(集中管理配置信息,动态发布配置信息)
    
  3. 市场有哪些主流的配置中心?(Apollo,Nacos,.....)
    

5、配置中心快速入门

  1. ** 配置中心一般都会配置什么内容?**(可能会经常变化的配置信息,例如连接池,日志,线程池,限流熔断规则)
  2. ** 什么信息一般不会写到配置中心?**(服务端口,服务名,服务的注册地址,配置中心)
  3. ** 项目中为什么要定义bootstrap.yml文件?**(此文件被读取的优先级比较高,可以在服务启动时读取配置中心的数据)
  4. ** Nacos配置中心宕机了,我们的服务还可以读取到配置信息吗?**(可以从内存,客户端获取配置中心的配置信息以后,会将配置信息在本地存储一份)
  5. ** 微服务应用中我们的客户端如何从配置中心获取信息?**(我们的服务一般会先从内存中读取配置信息,同时我们的微服务还可以定时向nacos配置中心发请求拉取(pull)更新的配置信息)
  6. ** 微服务应用中客户端如何感知配置中心的数据变化?**(1.4.x版本以后nacos客户端会基于长轮询机制从nacos获取配置信息,所谓的长轮询就是没有配置更新时,会在nacos服务端的队列进行等待)
  7. ** 服务启动后没有从配置中心获取我们的配置数据是什么原因?**(依赖,配置文件名字bootstrap.yml,配置中心的DataId名字是否正确,缩进关系是否正确,假如是动态发布,类上是否有@RefreshScope注解)
  8. ** 你项目中使用的日志规范是什么?**(SLF4J)
  9. **你了解项目中的日志级别吗?**(debug,info,error,可以基于日志级别控制日志的输出)
    

6、Nacos配置管理模型

  1. Nacos配置管理模型背景?(环境不同,配置不同)
    
  2. Nacos配置中的管理模型是怎样的?(namespace,group,service/data-id)
    
  3. Nacos客户端是否可以读取共享配置?(可以)
    
标签: java 服务器

本文转载自: https://blog.csdn.net/m0_63270506/article/details/124461036
版权归原作者 码云铁粉 所有, 如有侵权,请联系我们删除。

“java面试题——Nacos常见面试题”的评论:

还没有评论