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