Nacos面试题
时间: 2025-05-23 21:14:11 浏览: 35
### Nacos 面试题整理
#### 1. **什么是Nacos?**
Nacos 是一个开源的分布式服务发现、配置管理和服务治理平台,提供了服务注册和发现、动态 DNS 和服务健康监测等功能。它是构建微服务架构的重要组成部分[^1]。
#### 2. **Nacos 的主要功能特性有哪些?**
Nacos 提供了以下核心功能:
- 动态服务发现:支持服务的自动注册与发现。
- 动态配置管理:允许集中化存储和管理应用程序的配置信息。
- 服务元数据管理:提供对服务实例及其元数据的支持。
- 流量管理:通过路由规则实现流量分配和负载均衡。
- 主动健康检查:能够主动检测服务实例的状态并及时剔除不健康的实例[^3]。
#### 3. **为什么选择 Nacos 作为微服务解决方案?**
Nacos 被广泛采用的原因在于它的以下几个优势:
- 支持动态的服务发现和配置管理。
- 易于集成和使用。
- 社区活跃,文档完善。
- 提供丰富的 API 接口以及多种编程语言 SDK 支持[^2]。
#### 4. **EnableFeignClients 注解的作用是什么?**
`@EnableFeignClients` 注解用于启用 Feign 客户端的功能。通常在 Spring Boot 启动类或者配置类中声明此注解,以便让框架扫描指定包路径下的 Feign 接口并将其注入到容器中[^4]。
#### 5. **什么是配置中心?为什么要使用配置中心?**
配置中心是一种专门用来存储项目运行过程中所需的各种参数的服务工具。
使用配置中心的好处包括但不限于:
- 实现配置的统一管理和分发。
- 减少硬编码带来的维护成本。
- 支持动态修改配置而无需重启服务即可生效[^4]。
#### 6. **市场上的主流配置中心有哪些?**
目前比较流行的配置中心有 Apollo、Consul、Zookeeper 和 Nacos 等。其中 Nacos 不仅能完成基本的配置管理工作,还额外集成了服务发现的能力[^4]。
#### 7. **配置中心一般会配置哪些内容?**
常见的可变性强的内容适合放入配置中心管理,比如数据库连接池设置、缓存策略、日志等级调整、线程池大小定义以及限流熔断规则等[^4]。
#### 8. **什么信息不适合放到配置中心里去?**
一些静态化的基础属性不宜放在配置中心中保存,例如服务自身的监听端口号、服务名称、服务注册地址以及其他固定不变的信息[^4]。
#### 9. **如果 Nacos 配置中心宕机会怎样处理?**
当 Nacos 配置中心发生故障时,客户端仍然可以通过本地缓存继续访问之前同步下来的最新版本配置项;不过为了保障高可用性建议部署多个节点形成集群模式工作[^4]。
#### 10. **微服务应用如何感知来自配置中心的数据变更事件?**
自 v1.4 版本起,Nacos 客户端引入了长轮询机制 (Long Polling),即如果没有新的更改通知,则请求会被挂起直到超时再重新发起新一轮查询过程;一旦捕获到了任何改动则立即返回给调用方执行相应操作逻辑。
---
### 示例代码片段
以下是简单的 `application.properties` 文件加载远程 nacos 中心配置的例子:
```properties
spring.application.name=demo-service
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
```
下面是配合 spring-cloud-starter-alibaba-nacos-config 使用的一个典型场景下 bootstrap.yml 的书写方式:
```yaml
spring:
application:
name: demo-service
cloud:
nacos:
config:
server-addr: localhost:8848
file-extension: yaml
```
---
阅读全文
相关推荐















