什么Nacos
Nacos是Spring Cloud Alibaba提供的一个软件
这个软件主要具有注册中心和配置中心的功能
微服务中所有项目都必须注册到注册中心才能成为微服务的一部分
注册中心和企业中的人力资源管理部门有相似
Nacos的启动
我们要启动Nacos必须保证当前系统配置了java环境变量
简单来说就是要环境变量中,有JAVA_HOME的配置,指向安装jdk的路径
确定了支持java后,可以通过下面路径下载
https://github.com/alibaba/nacos/releases/download/1.4.3/nacos-server-1.4.3.zip
国外网站,下载困难可以多试几次
安装启动Nacos
将下载好的Nacos压缩包解压
将压缩包解压(注意不要有中文路径或空格)
打开解压得到的文件夹后打开bin目录会有如下内容
cmd结尾的文件是windows版本的
sh结尾的文件是linux和mac版本的
startup是启动文件,shutdown是停止文件
Windows下启动Nacos不能直接双击cmd文件
需要进入dos命令运行
在当前资源管理器地址栏输入cmd
G:\pgm\nacos\bin>startup.cmd -m standalone
-m是设置启动方式参数
standalone翻译为标准的孤独的
意思是单机模式标准运行
运行成功默认占用8848端口,并且在代码中提示
如果不输入standalone运行会失败
startup.cmd -m standalone
验证Nacos的运行状态
打开浏览器输入http://localhost:8848/nacos
如果是首次访问,会出现这个界面
登录系统
用户名:nacos
密码:nacos
登录之后可以进入后台列表
不能关闭启动nacos的dos窗口
要让编写的项目注册到Nacos,才能真正是微服务项目
例:
spring:
application:
# 当前Springboot项目的名称,用作注册中心服务的名称
name: xxxxxx
cloud:
nacos:
discovery:
# 定义nacos运行的路径
server-addr: localhost:8848
配置nacos的pom
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
Nacos心跳机制
Nacos内部注册的服务分为两大类
1.临时实例(默认)
2.持久化实例(永久实例)
我们可以通过设置属性来确定它是临时还是永久
cloud:
nacos:
discovery:
# ephemeral设置当前项目启动时注册到nacos的类型 true(默认):临时实例 false:永久实例
ephemeral: true
临时实例和永久实例的区别
临时实例
默认情况下,启动服务后,每隔5秒会向nacos发送一个"心跳包",这个心跳包中包含了当前服务的基本信息
Nacos收到这个"心跳包"如果发现这个服务的信息不在注册列表中,就进行注册,如果这个服务的信息在注册列表中就表明这个服务还是健康的
如果Nacos15秒内没接收到某个服务的心跳包,Nacos会将这个服务标记为不健康的状态
如果30秒内没有接收到这个服务的心跳包,Nacos会将这个服务从注册列表中剔除
这些时间都是可以通过配置修改的
持久化实例(永久实例)
持久化实例启动时向nacos注册,nacos会对这个实例进行持久化处理
心跳包的规则和临时实例一致,只是不会将该服务从列表中剔除
各类型使用时机
一般情况下,我们创建的服务都是临时实例
只有项目的主干业务才会设置为永久实例
使用Idea启动Nacos
我们每次开机都要先启动nacos才能启动其他服务
我们使用dos窗口敲代码启动nacos还是比较麻烦的
我们可以使用idea提供的功能,简化nacos启动的过程
配置完成后,就可以在idea中启动nacos(如果要注册多个业务到nacos要注意修改端口号不能相同)