Nacos官方文档:https://nacos.io/zh-cn/docs
什么是 Nacos
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
Nacos搭建
环境预备
当前推荐的稳定版本为2.0.3。
Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用:
- 64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。
- 64 bit JDK 1.8+;下载 & 配置。
- Maven 3.2.x+;下载 & 配置。
单节点部署
# 从 Github 上下载源码方式git clone https://github.com/alibaba/nacos.git # 从github克隆cd nacos/mvn -Prelease-nacos -Dmaven.test.skip=true clean install -Uls -al distribution/target/// change the $version to your actual pathcd distribution/target/nacos-server-$version/nacos/bin# 下载编译后压缩包方式 推荐https://github.com/alibaba/nacos/releases # 进入网站unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gzcd nacos/bin# 此时下载的包 可以在win用 也可以在linux用# 单节点启动服务Linux/Unix/Mac启动命令(standalone代表着单机模式运行,非集群模式):sh startup.sh -m standalone如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:bash startup.sh -m standalone# 服务注册&发现和配置管理服务注册curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'服务发现curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName'发布配置curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=HelloWorld"获取配置curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"# 关闭服务器Linux/Unix/Macsh shutdown.sh
使用mysql数据库
在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力,具体的操作步骤:
- 1.安装数据库,版本要求:5.6.5+
- 2.初始化mysql数据库,数据库初始化文件:nacos-mysql.sql
- 3.修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。 ```bash vim conf/application.properties # 编辑文件 spring.datasource.platform=mysql
db.num=1 db.url.0=jdbc:mysql://192.168.218.149:3306/db_nacos(写数据库名)?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=root # mysql 用户名 db.password=000000 # mysql 用户密码
mysql -uroot -p create database db_nacos; source conf/nacos-mysql.sql
再以单机模式启动nacos,nacos所有写嵌入式数据库的数据都写到了mysql<a name="PfTZO"></a>## 集群部署```bash# 在单节点基础上 配置集群配置文件# 在nacos的解压目录nacos/的conf目录下,有配置文件cluster.conf,请每行配置成ip:port。(请配置3个或3个以上节点)192.168.218.131:8848192.168.218.132:8848192.168.218.133:8848# 确定数据源使用内置数据源无需进行任何配置使用外置数据源 # 设置Mysql数据库生产使用建议至少主备模式,或者采用高可用数据库。# 启动服务器# Linux/Unix/Mac# 单节点sh startup.sh -m standalone# 集群模式# 使用内置数据源sh startup.sh -p embedded# 使用外置数据源sh startup.sh# 如果是使用yum安装java 记得在/etc/profile文件中设置环境变量。
多集群模式
当本地环境比较复杂的时候,Nacos服务在启动的时候需要选择运行时使用的IP或者网卡。Nacos从多网卡获取IP参考Spring Cloud设计,通过nacos.inetutils参数,可以指定Nacos使用的网卡和IP地址。目前支持的配置参数有:
● ip-address参数可以直接设置nacos的ipnacos.inetutils.ip-address=10.11.105.155● use-only-site-local-interfaces参数可以让nacos使用局域网ip,这个在nacos部署的机器有多网卡时很有用,可以让nacos选择局域网网卡nacos.inetutils.use-only-site-local-interfaces=true● ignored-interfaces支持网卡数组,可以让nacos忽略多个网卡nacos.inetutils.ignored-interfaces[0]=eth0 nacos.inetutils.ignored-interfaces[1]=eth1● preferred-networks参数可以让nacos优先选择匹配的ip,支持正则匹配和前缀匹配nacos.inetutils.preferred-networks[0]=30.5.124. nacos.inetutils.preferred-networks[0]=30.5.124.(25[0-5]|2[0-4]\\d|((1d{2})|([1-9]?\\d))),30.5.124.(25[0-5]|2[0-4]\\d|((1d{2})|([1-9]?\\d)))
