一 nacos的下载和安装
参考资料: https://nacos.io/zh-cn/docs/quick-start.html
官方的参考资料写的比较简单,日常开发如果使用nacos作为本地开发环境或者生产环境我建议还需要做一下配置文件的修改,主要就是数据库连接的配置,这样下次启动nacos编写的配置文件会从数据库读取并加载,步骤如下
1 执行nacos提供的sql脚本到本地或云数据库
sql脚本一般放在nacos的conf目录中,我们只需把nacos-mysql.sql文件执行一下在数据库生成表之后就可以了
2 修改conf下面的application.properties文件,主要修改数据库连接的部分
db.url.0=jdbc:mysql://数据库IP:3306/nacos?characterEncoding=utf8&connectTimeout=5000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=你的用户名
db.password=你的密码
二 nacos的standalone模式启动
官方给出的命令如下:
Linux/Unix/Mac
启动命令(standalone代表着单机模式运行,非集群模式):
sh startup.sh -m standalone
如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:
bash startup.sh -m standalone
Windows
启动命令(standalone代表着单机模式运行,非集群模式):
cmd startup.cmd -m standalone
这几个命令一般情况是可以正常启动的,但是个别的linux发行版却是有问题的如本人deeping linux操作系统,如果遇到这种情况可以试试如下命令:
bash -f ./startup.sh -m standalone
三 nacos在spring cloud项目的使用
nacos非常适合在spring cloud alibaba技术栈中使用,单独作为服务发现注册中心或者配置中心使用也是OK的
nacos作为配置中心参考资料:https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config
资料已经详细的写明了nacos作为配置中心的使用方法,使用过程中应对里面提到的namespace、data-id、group的概念以及配置查找的运作模式和规则做详尽的学习和理解,只要仔细阅读资料文档就ok了
nacos作为服务发现和注册中心参考资料:https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-discovery
针对作为配置中心的使用我也写了一点demo分享给大家:
1 依赖引入
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
</dependencies>
第二个是nacos配置中心依赖,第三个是服务发现和注册的依赖,日常开发按需引入即可
2 配置文件编写
server:
port: 9091
spring:
application:
name: use-nacos
profiles:
active: dev
cloud:
nacos:
discovery:
server-addr: 59.110.116.207:8848
namespace: use-nacos
config:
server-addr: 59.110.116.207:8848
file-extension: yml
#命名空间ID
namespace: use-nacos
group: USENACOS_GROUP
#自定义扩展的 Data Id 配置
ext-config[0]:
data-id: other.yml
group: USENACOS_GROUP
refresh: true
3 测试用controller的编写
package com.debug.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/useNacos")
public class UseNacosController {
@Value("${default.user}")
private String defaultName;
@Value("${default.password}")
private String defaultPassWord;
@GetMapping("/getConfig")
public String getConfig(){
return "配置内容:"+defaultName+",默认密码:"+defaultPassWord;
}
}
下面是我在nacos编写的文件:
文件的内容大致如下:
controller运行结果如下:
总的来说nacos还是比较灵活的,用法其实并不固定,使用过程可根据自己的需要灵活调整,例如group用来区分不同的项目,namespace用来区分测试、生产环境或者反过来使用都没问题。