开发者学堂课程【Spring Cloud Alibaba Nacos 详解(上):】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/724/detail/12918
安装Nacos Server
内容介绍
一、预备环境准备
二、下载源码或者安装包
三、启动服务器
四、OPEN API 配置管理测试
五、关闭服务器
六、外部 mysql 数据库支持
一、预备环境准备
Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行 Nacos,还需要为此配置 Maven 环境,请确保是在以下版本环境中安装使用
1、64 bit Os,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。
2、64 bit JDk 1.8+;下载&配置
3、Maven 3.2.×+;下载&配置。
首先,安装 nacos server。根据之前了解的配置中心其工作和流程,首先需要向配置中心来发布配置,安装 Nacos server,支持它是依赖于 Java 环境的,它的具体环境要求是它支持 Linux、Windows、 unix 等等这些环境,本教程采用的是 Windows 环境,64位,GDK 为1.8,要求是1.8以上。maven,要求的是每份3.2以上。
本机需要安装 Java 环境,安装 JDK1.8以上的版本,包括安装 maven。
二、下载源码或者安装包
安装的方式,可以通过两种,一种是从 github 上下载源代码,通过 maven 进行编译,然后来进行安装。下面一种是直接从官方下载zip包即可安装版本(可直接运行的版本)。
从官方下载的 Nacos server 的1.1.3版本。
把 zip 包下载到电脑上之后需要解压。
解压位置要根据具体的电脑进行。可以解压到了 F 盘上边的一个目录,这个就是解压后 zip 包里面的目录结构。在这个目录结构当中,第一个是 B 目录,里面是一些可执行的文件,还有一些配置文件、数据存放的一些目录以及日志目录。默认的端口是8848,运行的方式,有 Linux、Windows 等等不同的运行方式。
对于 Windows 环境,运行它bin目录下的 startup,双击打开之后,黑窗口就打开了,界面就是运行界面。默认端口是8848,它运行完之后,就可以来访问这个地址。
解压一份,就可以按照讲义上说的来运行这个地址,进入到一个登录页面,账号和密码默认都是 nacos,这就是 nacos 的服务端,就安装成功了,里边都是空的数据,测试一下到底能不能用。
可以使用 Nacos 提供的 open API 的方式,因为 nacos 是一个服务,对外提供了 HTTP 的一些服务的接口,那么通过它提供的 API 服务,就可以发布配置,也可以从nacos 当中获取配置。
配置中心的工作方式,首先用户要把配置发布到配置中心。其他的程序需要从配置中心来获取配置。所以要想看 nacos 安装正确不正确、能不能正常的工作,就可以往 Nacos 上发布配置,并且,远程从nacos上获取配置。
可以通过源码和发行包两种方式来获取 Nacos.
1、从 Github 上下载源码方式
代码如下:
git clone https://github.com/alibaba/nacos.git
cd nacos
mvn -Prelease-nacos clean install -U
1s -al DISTRIBUTION/TARGET/
// change the $version to actual path
cd distribution/target/nacos-server-$version/nacos/bin
Bash
2、下载编译后压缩包方式
可以从最新稳定版本下载 nacos-server-$version.zip 包,本教程使用 nacos-server-1.1.3版本。
下载地址:https://github.com/alibaba/nacos/releases
下载后解压
unzip nacos-server-sversion.zip
或者
tar -xuf nacos-server-sversion.tar.gz
cd nacos/bin
三、启动服务器
nacos 的默认端口是8848,需要保证8848默认端口没有被其他进程占用。
进入安装程序的 bin 目录:
1、Linux/Unix/Mac 启动方式:
启动命令(standalone 代表看单机模式运行,非集群模式)
sh STARTUP.SH -M STANDALONE
如果您使用的是 ubuntu 系统,或者运行脚本报错提示[符号找不到,可尝试如下运行:bash STARTUP.SH -M STANDALONE
2、Windows 启动方式:
启动命令:
cmd startup.cmD
或者双击 startup.cmd 运行文件。
启动成功可通过浏监器访问 httn://127.0.0.1:8848/nacos
打开 naco s控制台登录页面
四、OPEN API 配置管理测试
open API 方式是基于 HTTP 协议的,用一个 QL 的命令行工具来模拟 HTTP 的请求,这个 API 接口当中,请求发布配置 SQL,这个工具是一个命令行的工具可以用作 HTTP 协议的测试。
通过 SQL 这个工具可以来模拟客户 HTTP 客户端向 HTTP 服务端发送请求。把它解压,进入到目录当中,就可以用了。
接下来执行命令,这个命令就是本机的 IP,就是 Nacos server 的端口后边这一些,就是固定地址,用这个地址发布配置。注意,这是一个独立的服务,电脑就相当于一个客户端,进行运行,看到 true 就表示发布成功。
在界面当中有一个配置管理配置列表,点到配置列表查询,这就是的配置信息,里面有一个详情。在上面的命令中,把配置信息的内容定义为一个名为 hello world 的一个字符串,内容可以随便定义,它的格式有好多种。
对于其他程序,要从 nacos 来获取配置,我的电脑就是一个客户端,对这个黑窗口就是一个客户端,这个客户端要远程的,从 Nacos 获取配置,可以执行这一行命令,注意这一行命令 get 请求就可以来获取配置,发布配置的时候是 post 请求,获取配置的时候是 get 请求。那么发布配置时,指定了一个参数 date ID 和 group,要知道现在发布配置的时候,是指定的一个 div ID group 以及 content 配置内容。这样三个参数一指定,就把这个配置信息发布成功了。那么在获取的时候,指定 date ID 和group 即可,就可以把这个 content、hello word 这个内容获取到。
启动 nacos 成功后,可通过 nacos 提供的 httpapi 验证 nacos 服务运行是否正常。
下边我们通过 curl 工具来测试 nacos 的 open api
curl 是开发中常用的命令行工具,可以用作 HTTP 协议测试
本教程下载 cur l的 windows 版本:curl-7.66.0_2-win64-mingw,下载地址:https://curl.haxx.se/windows/
下载完成进入 curl-7.66.0_2-win64-mingw 的 bin 目录,进行下边的测试,通过测试可判断 nacos 是否正常工作:
发布配置
curl-XPOST"http://127.0.0.1:8848/nacos/v1/cs/configs
?
dataId=nacos.cfg.dataId&group=test&content=HelloWorld"
上边的命令表示向 nacos 发布一个配置
获取配置
向 nacos 发布配置成功,就可以通过客户端从 nacos 获取配置信息,执行下面的命令:
curl -x GET “http://127.0.0.1:8848/nachos/v1/cs/config?
dataId+nacos.cfg.dataId&group-test”
通过测试发现,可以从 nacos 获取前边发布的配置:HelloWorld
五、关闭服务器
关闭 nacos 服务的方式如下:
1、Linux/Unix/Mac 方式:
sh shutdown.sh
2、Windows 方式:
cmd shutdown.cmd
或者双击 shutdown.cmd 运行文件
六、外部 mysql 数据库支持
单机模式时 nacos 默认使用嵌入式数据库实现数据的存储,若想使用外部 mysql 存储 nacos 数据,需要进行以下步骤:
1、安装数据库,版本要求:5.6.5+,mysql8 以下
2、初始化 mysql 数据库,新建数据库 nacos_config,数据库初始化文件:$nacoshome}/conf/nacos-mysqlsql
3、修改$(nacoshome)/conf/application.properties 文件,增加支持 mysql 数据源配置(目前只支持 mysql ),添加 mysql 数据源的 url、用户名和密码。
代码如下:
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_config
characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos_devtest
db.password=youdontknow