环境说明

  • 系统版本: centos 7.3
  • nacos版本: 1.3.0
  • 机器:
    • 192.168.111.65
    • 192.168.111.66
    • 192.168.111.67

安装

下载

wget https://github.com/alibaba/nacos/releases/download/1.3.0/nacos-server-1.3.0.tar.gz

解压

tar xf nacos-server-1.3.0.tar.gz
cd nacos

配置配置文件

  • conf/cluster.conf,配置文件内容如下
192.168.111.65:8848
192.168.111.66:8848
192.168.111.67:8848
  • conf/application.properties
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.111.65:3316/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
  • spring.datasource.platform: 指定数据源为mysql
  • db.num: 数据库数目
  • db.url.0: 第一个数据库的URL
  • db.url.1: 第二个数据库的URL
  • db.user: 数据库连接的用户名
  • db.password: 数据库连接的密码 说明:
  • 多个数据源时,如果用户名密码不一致,会将db.user,db.password按逗号(,)分隔,所以用户名,密码里不要带逗号(,)
  • 如果密码必须不一致,请使用db.user.index,db.user.password来指定数据库的用户名密码

初始化数据库

mysql> create database nacos_config default character set utf8;
mysql> source /root/nacos-mysql.sql; 
启动服务
sh startup.sh

关闭服务

sh shutdown.sh

登录web UI(到此基本的一些安装已经完成了,可以使用了)

http://192.168.111.65:8848/nacos nacos/nacos

服务注册&发现和配置管理

# 服务注册
curl -X PUT '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"

服务端如何开启鉴权

nacos.core.auth.enabled=true

关闭登录功能

修改application.properties,替换以下内容即可

## spring security config
### turn off security
spring.security.enabled=false
management.security=false
security.basic.enabled=false
nacos.security.ignore.urls=/**

#nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**

会话时间

默认会话保持时间为30分钟。30分钟后需要重新登录认证。 暂时不支持修改该默认时间

监控

配置application.properties文件,暴露metrics数据

management.endpoints.web.exposure.include=*

访问{ip}:8848/nacos/actuator/prometheus,看是否能访问到metrics数据

FAQ

  1. 服务端报错 java.lang.IllegalStateException: unable to find local peer: 127.0.0.1:8848 这个问题是因为Nacos获取本机IP时,没有获取到正确的外部IP.需要保证InetAddress.getLocalHost().getHostAddress()或者hostname -i的结果是与cluster.conf里配置的IP是一致的。
  2. Nacos如何扩缩容 目前支持修改cluster.conf文件的方式进行扩缩容, 改完后无需重启, Server会自动刷新到文件新内容。