1. 简介
Nacos,全称为“Dynamic Naming and Configuration Service”,是阿里巴巴开源的一款集成了服务注册与发现、动态配置服务、健康检查等功能的中间件。当引入SpringCloud Alibaba Nacos后,微服务应用能够实现服务的自动注册与发现,并能通过集中式配置管理实现配置的统一、动态更新。本次主要是对SpringCloud Nacos注册中心的入门学习,话不多说,接着往下看吧!
2. Nacos核心功能
- 服务发现:Nacos作为服务注册中心,支持服务的实时注册与订阅,使得服务消费者能够快速找到并连接到服务提供者。它具备健康检查机制,确保只有健康的实例才会被调用。
- 配置管理:Nacos提供了一个简洁易用的界面用于管理所有服务的配置信息,支持属性值的实时推送以及版本控制,开发者可以在不重启服务的情况下完成配置的变更与生效。
- 动态DNS服务:Nacos还提供了动态DNS服务,可以根据服务名直接解析到服务实例列表,方便进行流量调度和负载均衡。
关于Nacos的具体概念介绍可以在Nacos官方文档学习了解–Nacos简介
3. 基本关系概念
在注册中心中,主要的三个角色的关系,分别是服务注册中心 (Service Registry)、服务提供方 (Service Provider)、服务消费方 (Service Consumer)。

- 服务提供方 (Service Provider) 是指提供可复用和可调用服务的应用方。
a. 启动时,向 Registry 注册自己为一个服务(Service)的实例(Instance)。
b. 同时,定期向 Registry 发送心跳,告诉自己还存活。
c. 关闭时,向 Registry 取消注册。 - 服务消费方 (Service Consumer)是指会发起对某个服务调用的应用方。
a. 启动时,向 Registry 订阅使用到的服务,并缓存服务的实例列表在内存中。
b. Consumer 向对应服务的 Provider 发起调用时,从内存中的该服务的实例列表选择一个,进行远程调用。
c. 关闭时,向 Registry 取消订阅。 - 服务注册中心 (Service Registry)是整个服务治理的核心组件,它的主要职责是管理和维护所有服务提供者的注册信息,以及处理服务消费者的查询请求。
a. Provider 超过一定时间未心跳时,从服务的实例列表移除。
b. 服务的实例列表发生变化(新增或者移除)时,通知订阅该服务的 Consumer,从而让 Consumer 能够刷新本地缓存。
4. 安装Nacos
4.1 下载
本次使用的Nacos版本为2.3.1, 直接在官方github上Releases · alibaba/nacos下载安装包。

4.2 本地安装
- 解压安装包,进入bin目录下。Windows环境下,单例部署
#启动命令
startup.cmd -m standalone
启动成功打印日志

2. 访问管理界面
浏览器访问http://127.0.0.1:8848/nacos即可进入管理界面,到这里,最简单的nacos单例部署已经完成。

拓展
- nacos2.3.1启动访问管理界面不需要登录账号密码,之前的版本启动之后默认是使用账号:nacos和密码:nacos进行登录。
- 进入管理界面你会看到提示“当前集群没有开启鉴权,请参考文档开启鉴权~”,如果需要配置账号密码登录访问,需要进行鉴权配置,配置文件在conf目录下application.properties文件。
a. 配置nacos.core.auth.enabled(是否开启鉴权功能)
b. nacos.core.auth.plugin.nacos.token.secret.key(默认鉴权插件用于生成用户登陆临时accessToken所使用的密钥)
c. nacos.core.auth.server.identity.key(用于替换useragent白名单的身份识别key)
d. nacos.core.auth.server.identity.value(用于替换useragent白名单的身份识别value)- 具体参考nacos鉴权配置文档权限认证部分。
5. 集成Nacos服务注册
5.1 服务提供者
创建项目作为服务提供者provider-demo。
- 创建maven项目
- 引入依赖
引入依赖时需要注意Spring Boot、Spring Cloud、Spring Cloud Alibaba 的版本兼容,具体参考在《Spring Cloud 版本说明》文档说明。
<properties>
<spring.boot.version>2.3.12.RELEASE</spring.boot.version>
<spring.cloud.version>Hoxton.SR12</spring.cloud.version>
<spring.cloud.alibaba.version>2.2.8.RELEASE</spring.cloud.alibaba.version>
</properties>
<!-- Spring Boot、Spring Cloud、Spring Cloud Alibaba 依赖-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>${spring.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId

最低0.47元/天 解锁文章
6744






