Nacos官方文档:https://nacos.io/zh-cn/docs

什么是 Nacos

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
nacosMap.jpg

Nacos搭建

环境预备

当前推荐的稳定版本为2.0.3。
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.x+;下载 & 配置

    单节点部署

  1. # 从 Github 上下载源码方式
  2. git clone https://github.com/alibaba/nacos.git # 从github克隆
  3. cd nacos/
  4. mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
  5. ls -al distribution/target/
  6. // change the $version to your actual path
  7. cd distribution/target/nacos-server-$version/nacos/bin
  8. # 下载编译后压缩包方式 推荐
  9. https://github.com/alibaba/nacos/releases # 进入网站
  10. unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
  11. cd nacos/bin
  12. # 此时下载的包 可以在win用 也可以在linux用
  13. # 单节点启动服务
  14. Linux/Unix/Mac
  15. 启动命令(standalone代表着单机模式运行,非集群模式):
  16. sh startup.sh -m standalone
  17. 如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:
  18. bash startup.sh -m standalone
  19. # 服务注册&发现和配置管理
  20. 服务注册
  21. curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'
  22. 服务发现
  23. curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName'
  24. 发布配置
  25. curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=HelloWorld"
  26. 获取配置
  27. curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"
  28. # 关闭服务器
  29. Linux/Unix/Mac
  30. sh 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

  1. 再以单机模式启动nacosnacos所有写嵌入式数据库的数据都写到了mysql
  2. <a name="PfTZO"></a>
  3. ## 集群部署
  4. ```bash
  5. # 在单节点基础上 配置集群配置文件
  6. # 在nacos的解压目录nacos/的conf目录下,有配置文件cluster.conf,请每行配置成ip:port。(请配置3个或3个以上节点)
  7. 192.168.218.131:8848
  8. 192.168.218.132:8848
  9. 192.168.218.133:8848
  10. # 确定数据源
  11. 使用内置数据源
  12. 无需进行任何配置
  13. 使用外置数据源 # 设置Mysql数据库
  14. 生产使用建议至少主备模式,或者采用高可用数据库。
  15. # 启动服务器
  16. # Linux/Unix/Mac
  17. # 单节点
  18. sh startup.sh -m standalone
  19. # 集群模式
  20. # 使用内置数据源
  21. sh startup.sh -p embedded
  22. # 使用外置数据源
  23. sh startup.sh
  24. # 如果是使用yum安装java 记得在/etc/profile文件中设置环境变量。

多集群模式

当本地环境比较复杂的时候,Nacos服务在启动的时候需要选择运行时使用的IP或者网卡。Nacos从多网卡获取IP参考Spring Cloud设计,通过nacos.inetutils参数,可以指定Nacos使用的网卡和IP地址。目前支持的配置参数有:

  1. ip-address参数可以直接设置nacosip
  2. nacos.inetutils.ip-address=10.11.105.155
  3. use-only-site-local-interfaces参数可以让nacos使用局域网ip,这个在nacos部署的机器有多网卡时很有用,可以让nacos选择局域网网卡
  4. nacos.inetutils.use-only-site-local-interfaces=true
  5. ignored-interfaces支持网卡数组,可以让nacos忽略多个网卡
  6. nacos.inetutils.ignored-interfaces[0]=eth0 nacos.inetutils.ignored-interfaces[1]=eth1
  7. preferred-networks参数可以让nacos优先选择匹配的ip,支持正则匹配和前缀匹配
  8. 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)))