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

本文详细介绍了Nacos作为服务注册与调用、配置中心的功能。讲解了服务如何通过Nacos进行注册和状态判断,以及消费方如何利用Ribbon进行负载均衡调用。此外,还探讨了Feign在远程服务调用中的应用,以及配置中心在微服务架构中的重要性,包括Nacos配置管理模型的细节。最后,提到了如何在项目中管理和获取配置信息,并分析了Nacos客户端对配置数据的本地缓存和动态感知机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、服务注册与调用入门

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

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

4、配置中心

5、配置中心快速入门

6、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客户端是否可以读取共享配置?(可以)
     
以下是一些关于Nacos面试题及答案: 1. 什么是NacosNacos是一个开源的分布式服务发现、配置管理和服务治理平台,它提供了服务注册和发现、配置管理、服务路由和流量管理等功能,是构建微服务架构的重要组成部分。 2. Nacos的主要特点有哪些? Nacos具有以下特点: - 功能丰富:Nacos提供了服务注册和发现、配置管理、服务路由和流量管理等功能,能够满足企业构建微服务架构的需求。 - 可扩展性强:Nacos支持多数据中心的部署和插件机制,可以方便地扩展和定制。 - 高可用性和可靠性:Nacos采用了去中心化的设计和Raft算法,保证了服务注册和发现、配置管理的高可用性和可靠性。 - 易于使用:Nacos提供了可视化的Web界面和开放的API接口,可以方便地进行服务注册和发现、配置管理等操作。 - 社区活跃:Nacos有一个活跃的开源社区,能够及时解决问题和提供技术支持。 3. Nacos支持哪些服务发现和注册方式? Nacos支持基于HTTP和RPC协议的服务发现和注册方式,可以使用RESTful API或Dubbo等框架进行服务发现和注册。 4. Nacos的配置管理如何实现? Nacos的配置管理通过配置中心实现,可以将应用程序所需的配置信息统一管理,并提供实时的配置变更通知功能,支持多种配置格式(如properties、XML、JSON等)。 5. Nacos的自我保护机制是什么? Nacos的自我保护机制是指,在Nacos集群中,当有大量服务实例下线或网络故障时,Nacos会开启自我保护机制,保证服务注册和发现的正运行。 6. Nacos支持哪些配置格式? Nacos支持多种配置格式,包括properties、XML、JSON、YAML等。 7. Nacos如何实现服务路由? Nacos可以通过服务网关、DNS或API网关等方式实现服务路由。 8. Nacos如何实现流量管理? Nacos可以通过流量控制、负载均衡和熔断降级等方式实现流量管理。 9. Nacos的集群模式有哪些? Nacos的集群模式包括单机模式、集群模式和多数据中心模式。 10. Nacos和Zookeeper、Consul、Eureka服务发现和配置管理工具有什么区别? Nacos和这些工具的区别在于数据一致性的类型。Eureka是AP类型的,支持最终一致性;Zookeeper和Consul是CP类型的,支持强一致性;而Nacos支持CP AP模式,可以根据配置识别为CP模式或AP模式,默认是AP模式。 希望以上回答能够帮助你更好地理解Nacos。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Nacos 相关面试题及答案](https://blog.csdn.net/weixin_44603464/article/details/130136228)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

91科技

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

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

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

打赏作者

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

抵扣说明:

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

余额充值