type
status
date
slug
summary
tags
category
icon
password
做的项目中涉及到了nacos,作为刚刚步入职场,第一次认识到了nacos在项目中的使用。
首先先要明白nacos是什么。
Nacos(Naming and Configuration Service)是一个开源的动态服务发现、配置管理和服务管理平台。它主要用于微服务架构中,帮助开发者更方便地实现服务的注册与发现、配置管理以及服务管理。(其实看名字就知道用途了 naming and configuration!)
以下是一些基本概念:
Nacos的基本概念和功能是什么?
- Nacos主要提供服务注册与发现、动态配置管理和服务管理三大核心功能。
Nacos与Eureka、Consul等其他服务注册与发现组件的区别是什么?
- Nacos不仅支持服务注册与发现,还集成了动态配置管理功能,而Eureka和Consul主要专注于服务注册与发现。
- Nacos支持多种服务注册方式(如DNS、HTTP),而Eureka主要基于RESTful API。
- Nacos提供了更丰富的服务治理能力,如流量管理、权限控制等。
Nacos的动态配置管理是如何实现的?
- Nacos通过配置中心实现动态配置管理,支持配置的实时推送和版本管理,确保配置变更的实时性和一致性。
Nacos在微服务架构中的应用场景有哪些?
- 服务注册与发现:微服务实例的自动注册和发现。
- 动态配置管理:实时更新应用配置,如数据库连接、缓存配置等。
- 服务管理:监控和管理微服务实例的健康状态和流量。
Nacos的主要用途:
- 服务注册与发现:微服务实例可以自动注册到Nacos,其他服务可以通过Nacos发现和调用这些实例。
- 动态配置管理:应用的配置可以集中管理在Nacos中,支持实时更新和推送,确保配置的一致性和实时性。
- 服务管理:提供服务实例的健康检查、流量管理、权限控制等功能,帮助开发者更好地管理和监控微服务。
总的来说,nacos的作用:注册中心+配置中心的组合 -> Nacos = Eureka+Config+Bus
一些问题:
- 服务实例下线问题: 服务实例下线后,Nacos 如何处理?
- 解决方案: 使用健康检查机制,确保下线的服务实例被及时移除。
- 配置更新延迟问题: 配置更新后,应用程序如何及时感知?
- 解决方案: 使用 Nacos 的配置监听机制,确保配置更新后立即通知应用程序。
- 集群脑裂问题: 集群中出现脑裂如何处理?
- 解决方案: 使用 Raft 协议确保集群数据一致性,避免脑裂问题。
一些bootstrap和application.yml的区别:
- 加载时机:
bootstrap.yml
在应用程序启动的早期阶段加载,甚至在application.yml
之前。application.yml
在应用程序启动的后期阶段加载。
- 用途:
bootstrap.yml
主要用于配置Spring Cloud相关的组件,如配置服务器、服务发现等。application.yml
主要用于配置应用程序的常规配置参数。
- 配置服务器:
bootstrap.yml
通常用于配置Spring Cloud Config Server的连接信息。application.yml
从配置服务器获取配置后,可以覆盖或补充bootstrap.yml
中的配置。
那在实际项目中的作用也是,包括要注册base business等模块的服务,以此来保证可以发现和调用这些实例;
一些配置类的修改,以此来配合ERMS系统的接口(比如erms的地址可以根据项目来修改)只要简单在nacos配置里面改一下就好了—》动态配置管理;