SpringCloudAlibaba Nacos服务注册与发现
文章目录
一.Nacos安装
nacous下载地址:https://github.com/alibaba/nacos/releases,我用的是最新的1.3.1
下载完解压,进入bin目录下,cmd结尾的是windows的,sh结尾的是linux和mac的启动和关闭器
下面第二张图就代表启动成功了。单例的~后面会介绍集群Cluster模式
启动成功后,进入这个网页http://127.0.0.1:8848/nacos/#/login,nacos默认端口8488,可以在配置文件application.properties中修改。默认密码都是nacos
输入密码后就,进入下面的页面~
二.创建工程,将注册服务到Nacos
1.引入如下依赖
注意:spring-cloud-alibaba-dependencies 依赖在2.1.0版本开始groupid已经变成了com.alibaba.cloud,不要再选择org的了。还有import记得添加好,不然会can‘t resolve xxxxid。
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.1.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
2.配置文件配置如下
3.服务启动后,查看后台服务注册列表
这里可以看到我们的服务已经注册成功了。
4.查看下 ’详情‘
服务名是我们自己注册的,分组默认就是DEFAULT_GROUP,服务路由类型默认是none,常规项目,这两个就这样配置就可以了。
阈值:0~1之间。健康实例/全部实例。当这个比例小于这个阈值的时候,就把所有的实例(包括健康的,也有不健康的)全部返回给消费者。正常情况下,nacos只会将健康实例返回给消费者。
在 ‘集群’ 这个模块,我们可以看到 ’临时实例‘为true,这是在nacos中有临时实例和持久实例。临时实例:nacos主动检测,如果一定时间没有发送心跳,就认为是不健康实例了。持久实例:不做健康检查。springcloud或dubbo都是临时实例。
’下线‘:我们可以看到后面还有的操作中有’下线‘操作,这个下线后,我们的服务依然还在启动,只是消费者拉取信息的时候,拉取不到它了。
三.Nacos数据持久化到MySQL
1.创建nacos_config数据库,将conf目录下nacos-mysql.sql导入此数据库。
2.在application.properties设置连接如下。
#*************** Config Module Related Configurations ***************#
### If user MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
四.Nacos集群模式
1.复制我们的单例Nacos,分别命名nacos01,nacos02,nacos03
2.修改配置文件application.properties的端口
nacos01:端口为8848,指定ip 127.0.0.1
nacos02:端口为8849,指定ip 127.0.0.1
nacos03:端口为8850,指定ip 127.0.0.1
下图为nacos02 中application.properties的修改内容:
3.创建cluster.conf
这个创建很简单在conf文件目录下,nacos已经给我提供了模板就是cluster.conf.example文件,我们复制文件,修改文件名称为cluster.conf,将我们的节点ip都添加进去。每个nacos节点都做一份cluster.conf。
文件内容编辑为如下图所示:
4.启动
- 如果是Linux或者Mac系统,配置到这里就可以了,执行sh startup.sh -m cluster命令,以集群的模式启动。启动效果如下图所示:
- 如果是windows的话,需要修改每个节点的startup.cmd文件,将下面的if else的内容互换一下就可以了。然后直接点击每个nacos节点下startup.cmd启动就可以了。
启动后的效果图如下:
5.查看节点元数据
这里8848为leader,8849为follower,8850也为follower。
他的主从是自己选举的,你们可以尝试下,将8848停掉~后出现新的leader
五.Nacos自动配置
nacos相当于eureka+config+bus。
nacos不需要github之类的,可以将配置文件放在nacos目录下。
自动配置剩下的内容晚点更新~