Nacos 核心
Nacos 核心
Nacos 基础概念
1.Nacos简介
Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。随着微服务架构的兴起,服务间的通信和配置管理变得尤为重要。Nacos提供了一组简单易用的特性集,包括服务发现、服务配置、服务元数据及流量管理等,帮助开发者更高效地管理和维护微服务应用
2.Nacos优势
- 动态服务发现:Nacos支持基于DNS和基于RPC的服务发现,服务提供者和消费者可以实现自动注册和发现
- 统一配置管理:通过Nacos可以统一管理不同环境、不同集群的配置,实现配置的动态更新
- 高可用与可扩展:Nacos集群支持高可用部署,保障服务的稳定性和连续性。同时,其良好的扩展性可以满足不同规模的业务需求
- 多环境支持:无论是开发、测试还是生产环境,Nacos都能提供一致性的服务发现和配置管理体验
- 集成与兼容性:Nacos可以与其他开源生态(如Spring Cloud、Dubbo等)无缝集成,降低了开发和运维的复杂性
3.服务注册与服务发现
在微服务架构中,服务注册与发现是实现服务间通信的关键环节。Nacos通过以下步骤实现服务注册与服务发现
服务注册:
当服务提供者启动时,会向Nacos注册中心发送注册请求,包含自身的元数据信息(如服务名、IP地址、端口号等)。Nacos接收请求后,将服务提供者的信息存储在内存中,并持久化到数据库中,以确保数据的高可用性和一致性
服务发现:
服务消费者在启动时或运行过程中,会向Nacos注册中心发送服务发现请求,查询所需服务的提供者列表。Nacos相据消费者的请求条件(如服务名、版本号等),返回匹配的服务提供者列表。这个列表包含了提供者的网络地址和其他元数据,消费者可以根据这些信息选择合适的服务提供者进行调用
健康检查:
为了确保服务的可用性和稳定性,Nacos还提供了一套健康检査机制。它会定时向服务提供者发送健康检查请求验证其是否能够正常处理请求。如果服务提供者连续多次未通过健康检查,Nacos会将其标记为不健康状态,并从服务提供者列表中移除。这样可以避免消费者调用已经不可用的服务提供者,提高了系统的容错能力和可用性
长连接与事件通知:
Nacos通过长连接(HITP长轮词或WebSocket)与客户端保持通信,以实现实时的服务变里通知,当服务提供者有变更(如新增实例、实例下线等)时,Nacos会基于长连接推送变更数据给消费者,确保消费者能够及时感知到服务的变化并作出相应的调整。这种机制保证了服务发现和配置的实时性和准确性
负载均衡与容错:
在服务消费者端,Nacos提供了负载均衡策略,支持多种负载均衡算法(如随机、轮询、加权轮询等)。消费者从提供者地址列表中,基于负载均衡算法选一台提供者进行调用。如果调用失败,会再选另一台调用,实现了容错和高可用性。
总之,Nacos通过简单易用的特性集和高效的服务注册与发现机制,为微服务架构提供了强大的支撑能力。它不仅降低了微服务应用开发和运维的复杂性,还提高了系统的可用性和稳定性。在云原生时代,Nacos将继续发挥重要作用,助力企业构建高效、稳定的微服务应用。
Nacos 安装配置
1.windows环境
JDK 环境配置确认
Nacos运行依赖于JDK环境,首先要确保windows下的JDK环境配置是否正常(通过java -version
),win10下JDK系统环境变量配置
# 1.JAVA_HOME
变量名:JAVA_HOME
变量值:电脑上JDK安装的绝对路径
# 2.CLASSPATH
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
# 3.Path (win10是分条记录存储变量的,不会像win7、win8那样连在一起)
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
(如果是win7、win8则以分号连接两条记录即可)
# 4.配置完成,重启CMD窗口,然后确认配置是否成功
启动nacos
以单机模式启动nacos:startup.cmd -m standalone
启动成功后可以通过访问URL:http://127.0.0.1:8848/nacos/index.html 查看nacos主页(默认用户名密码均为nacos)
启动失败则可以通过启动日志等信息查看相应报错信息,然后根据信息调整配置,一步步排查异常原因
2.MAC环境
由于Nacos 2.1版本可能不直接支持Mac M1,因此可能需要寻找兼容M1的Docker镜像或者使用兼容M1的Docker版本。如果不适用docker,则考虑nacos2.2.1版本,nacos2.2.1版本增加了对ARM64和M1芯片的直接支持,因此选择nacos-2.1.1 以上的版本来适配m1芯片
如果是2.2.1版本,需要修改安装目录下/conf下的application.properties文件的配置(选择下面其中一个key即可,修改相应的属性)
nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789
nacos.core.auth.plugin.nacos.token.secret.key=VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg=
启动nacos:sh startup.sh -m standalone
,可进一步查看相应的启动日志,确认nacos是否启动成功。访问http://localhost:8848/nacos(默认用户名密码均为nacos)
MacBook m系列芯片如何直接安装启动 Nacos及Nacos启动日志报错“have ‘x86_64’,need ‘arm64e‘”