介绍
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速
实现动态服务发现、服务配置、服务元数据及流量管理。
从上面的介绍就可以看出,Nacos的作用就是一个注册中心,用来管理注册上来的各个微服务。
核心功能点:
-
服务注册: Nacos Client会通过发送REST请求想Nacos Server注册自己的服务,提供自身的元数据,比如IP地址,端口等信息。Nacos Server接收到注册请求后,就会把这些元数据存储到一个双层的内存Map中。
-
服务心跳: 在服务注册后,Nacos Client会维护一个定时心跳来维持统治Nacos Server,说明服务一致处于可用状态,防止被剔除,默认5s发送一次心跳
-
服务同步: Nacos Server集群之间会相互同步服务实例,用来保证服务信息的一致性。
-
服务发现: 服务消费者(Nacos Client)在调用服务提供的服务时,会发送一个REST请求给Nacos Server,获取上面注册的服务清单,并且缓存在Nacos Client本地,同时会在Nacos Client本地开启一个定时任务拉取服务最新的注册表信息更新到本地缓存。
-
服务健康检查: Nacos Server 会开启一个定时任务来检查注册服务实例的健康情况,对于超过15s没有收到客户端心跳的实例会将他的healthy属性设置为false(客户端服务发现时不会发现),如果某个实例超过30s没有收到心跳,直接剔除该实例(被剔除的实例如果恢复发送心跳则会重新注册)
准备工作
安装与启动
- 下载地址: https://github.com/alibaba/nacos/releases
下载zip格式的安装包,然后进行解压缩操作,此演示的Nacos Server版本是1.3.2 - 进入解压后的目录
cd nacos/bin
- 命令启动 (cmd命令)
startup.cmd -m standalone
- 打开浏览器输入
http://localhost:8848/nacos
,即可访问服务, 默认密码是nacos/nacos
配置
pom.xml
- 在每个服务项目上都添加此依赖,nacos才能看到
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
启动类
- 在启动类上添加注解(加了依赖的话 不贴也行,贴了比较帅)
@EnableDiscoveryClient
application.yml
- 若已经有spring: 的配置,则删掉这行, 把这里面其他的一起嵌进去
spring:
cloud:
nacos:
discovery:
namespace : #若有命名空间则输入对应命名空间
server-addr: localhost:8848
效果图
- 启动nacos后可打开服务网址查看对应的服务:http://localhost:8848/nacos
1.服务在启动的时候会把自己的信息,放到注册中心中,并且会把注册中心的服务列表信息,拉去本地
2. 每隔一段时间会发送一个心跳包,并且会拉去最新服务列表信息
3.如果连续几次都没有给注册中心去发送心跳包,服务就挂掉了,把节点的信息给踢出掉