1 安装Nacos Server
1.1 预备环境准备
Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用:
- 64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。
- 64 bit JDK 1.8+
- Maven 3.2.x+
1.2 下载源码或者安装包
你可以通过源码和发行包两种方式来获取 Nacos。
从 Github 上下载源码方式
git clone https://github.com/alibaba/nacos.git
cd nacos/
mvn ‐Prelease‐nacos clean install ‐U
ls ‐al distribution/target/
// change the $version to your actual path
cd distribution/target/nacos‐server‐$version/nacos/bin
下载编译后压缩包方式
您可以从 最新稳定版本 下载 nacos-server-$version.zip 包,本教程使用nacos-server-2.2.0版本。
下载地址:https://github.com/alibaba/nacos/releases
下载后解压:
unzip nacos‐server‐$version.zip 或者 tar ‐xvf nacos‐server‐$version.tar.gz
cd nacos/bin
1.3 启动服务器
nacos的默认端口是8848,需要保证8848默认端口没有被其他进程占用。
进入安装程序的bin目录:
Linux/Unix/Mac启动方式:
启动命令(standalone代表着单机模式运行,非集群模式):
sh startup.sh -m standalone
如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:
bash startup.sh -m standalone
Windows启动方式:
启动命令:
cmd startup.cmd
或者双击startup.cmd运行文件。
启动成功,可通过浏览器访问 http://192.168.222.144:8848/nacos ,打开如下nacos控制台登录页面:
使用默认用户名:nacos,默认密码:nacos 登录即可打开主页面。
1.4 OPEN API 配置管理测试
启动nacos成功后,可通过nacos提供的http api验证nacos服务运行是否正常。
下边我们通过 curl工具来测试nacos的open api:
curl 是开发中常用的命令行工具,可以用作HTTP协议测试。
本教程下载curl的windows版本:curl-7.66.0_2-win64-mingw,下载地址:https://curl.haxx.se/windows/
下载完成进入curl-7.66.0_2-win64-mingw的bin目录,进行下边的测试,通过测试可判断nacos是否正常工作:
发布配置
curl -X POST "http://192.168.222.144:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=HelloWorld"
上边的命令表示向nacos发布一个配置:
点击“详情”:
获取配置
向nacos发布配成功置,就可以通过客户端从nacos获取配置信息,执行下边的命令:
curl -X GET "http://192.168.222.144:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"
通过测试发现,可以从nacos获取前边发布的配置:HelloWorld
1.5 关闭服务器
关闭nacos服务的方式如下:
Linux/Unix/Mac方式:
sh shutdown.sh
Windows方式:
cmd shutdown.cmd
或者双击shutdown.cmd运行文件。
1.6 外部mysql数据库支持
单机模式时nacos默认使用嵌入式数据库实现数据的存储,若想使用外部mysql存储nacos数据,需要进行以下步骤:
(1)安装数据库,版本要求:5.6.5+ ,mysql 8 以下
(2)初始化mysql数据库,新建数据库nacos_config,数据库初始化文件:${nacoshome}/conf/mysql-schema.sql
(3)修改${nacoshome}/conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.222.132:3306/nacos_config?
characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
2 Nacos配置入门
2.1 发布配置
首先在nacos发布配置。
浏览器访问 http://192.168.222.144:8848/nacos ,打开nacos控制台,并点击菜单配置管理->配置列表:
在Nacos添加如下的配置:
Data ID: nacos-simple-demo.yaml
Group : DEFAULT_GROUP
配置格式: YAML
配置内容: common:
config1: something
Note: 注意dataid是以 properties(默认的文件扩展名方式)为扩展名,这里使用yaml。
第一步:点击新增配置
第二步:配置信息
第三步:发布配置
在第二步点击“发布”,如下图,点击确定发布成功。
第四步:查询配置
2.2 nacos客户端获取配置
我们需要新增一个名为nacos-simple-demo的项目,坐标如下:
<groupId>com.itheima.nacos</groupId>
<artifactId>nacos‐simple‐demo</artifactId>
<version>1.0‐SNAPSHOT</version>
添加group ID为com.alibaba.nacos和artifact ID为nacos-client的starter。用于实现项目中使用Nacos来实现应用的外部化配置。
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>2.2.0</version>
</dependency>
(1)完整的pom.xml配置如下
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>nacos‐simple‐demo</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>2.2.0</version>
</dependency>
</dependencies>
</project>
注意:
如果不加org.slf4j和log4j,会报如下错误:
Exception in thread “main” java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
(2)获取外部化配置
新增java执行类,并在执行过程中获取配置信息:
package com.exmaple.demo;
import com.alibaba.nacos.api.NacosFactory;
import com.alibaba.nacos.api.config.ConfigService;
import com.alibaba.nacos.api.exception.NacosException;
import java.util.Properties;
public class SimpleDemoMain {
public static void main(String[] args) throws NacosException {
//nacos 地址
String serverAddr = "192.168.222.144:8848";
//Data Id
String dataId = "nacos-simple-demo.yaml";
//Group
String group = "DEFAULT_GROUP";
Properties properties = new Properties();
properties.put("serverAddr",serverAddr);
ConfigService configService = NacosFactory.createConfigService(properties);
//获取配置,String dataId, String group, long timeoutMs
String content = configService.getConfig(dataId, group, 5000);
System.out.println(content);
}
}
启动SimpleDemoMain,控制台得到以下内容:
说明获取配置成功。