一、Nacos概述
下载安装
在Nacos官方网址下载压缩包,在官方网址上有Nacos的详细用法。
安装完成后进入到Nacos安装目录的bin目录下,在该目录下打开cmd命令,执行startup.cmd
命令即可运行Nacos。
Nacos运行报错
一般下载安装完后,运行都会报错,按照如下步骤做应该大多数都能运行成功。我本地安装的mysql8+,Nacos2.02。
Nacos默认是按照集群模式启动,集群模式要保证集群的数据一致性,所以肯定需要指定一个数据库,但是安装时没有指定过,运行就报错了。解决方法有两个:一个是不适用集群模式启动,使用单机模式启动,还有一个就是配置集群模式的数据库。
单机模式
使用startup.cmd -m standalone
命令,单机模式启动。
集群模式
Nacos目前采用的是mysql数据库,集群模式配置如下
(1) 找到nacos/conf目录下的nacos-mysql.sql,不同版本可能名字不同
(2)在mysql中新建数据库,然后导入nacos-mysql.sql。有些低版本的nacos-mysql.sql中有创建数据库的sql语句,可以直接将nacos-mysql.sql中的内容复制过去执行。
(3)在同样路径下编辑application.properties,添加数据库连接信息
注意8.0以上url需要添加时区。
**(4)**确认conf目录下是否有cluster.conf文件,如果没有就将cluster.conf.example文件复制粘贴一份然后重命名为cluster.conf。
通过上述步骤命令行输入startup.cmd
应该就能正常启动。
网上还说了一个办法,不过我没试过,如果还是不行的可以试试:Mysql8+版本需要在nacos目录下新建/plugins/mysql目录,并把8+版本的mysql驱动jar包放在该目录底下。
二、Nacos使用
注册中心
(1)首先添加依赖:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>${latest.version}</version>
</dependency>
(2)编写配置文件
server.port=8070
spring.application.name=service-provider
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
(3)启动类上加上@EnableDiscoveryClient注解
配置中心
(1)添加依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>${latest.version}</version>
</dependency>
(2)编写配置文件
spring:
application:
name: example
cloud:
nacos:
discovery:
# 要请求的注册中心地址
server-addr=127.0.0.1:8848
config:
server-addr=127.0.0.1:8848
# 文件后缀名
file-extension: yaml
group: 指定那个组的名字
namespace: 指定命名空间的名字
# 默认读取nacos配置中心的${prefix}-${spring.profiles.active}.${file-extension}文件
(3)编写动态刷新配置文件
@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {
@Value("${useLocalCache:false}")
private boolean useLocalCache;
@RequestMapping("/get")
public boolean get() {
return useLocalCache;
}
}