在SpringCloud中注册中心、配置中心都需要专门去写一定量的以及一些配置,配置信息多了就不方便去维护管理,于是阿里的Nacos 解决这些问题就提供了该一站式解决方案。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
在实际开发,基于SpringCloudAlibaba框架开发的日常工作中,作为程序工程师,你得会进行基本的安装以及问题的解决。好了下面就开始进行安装的内容。
这一步可以看看笔者的另一篇博文在虚拟机VMware安装CentOS7
这一步可以看看笔者的另一篇博文CentOS安装Docker
这一步可以看看笔者的另一篇博文结合实践总结docker 安装 mysql5.7
一些配置的数据都是在里面的
https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql
如果直接下载nacos的,那么脚本就在这个conf目录下面:
# 创建 nacos 配置存放目录
mkdir -p /home/docker/nacos/conf && chown -R 200 /home/docker/nacos/conf
# 创建 nacos 数据存放目录
mkdir -p /home/docker/nacos/data && chown -R 200 /home/docker/nacos/data
# 创建 nacos 日志存放目录
mkdir -p /home/docker/nacos/logs && chown -R 200 /home/docker/nacos/logs
conf:这个是Nacos配置文件的存放目录,Nacos是用Java写的,到时候我们得在里面将一些配置改成我们自己的
conf文件夹下可能有如下文件:
application.properties配置文件是不是很熟悉,是的就是我们经常见到的SpringBoot等的配置文件
data:就是Nacos存放我们配置的数据的,如下面这些等等:
logs:就是Nacos的执行日志。
不放心的话可执行docker images命令检查是否拉取成功
docker run \
--name nacos -d \
-p 8888:8848 \
--privileged=true \
--restart=always \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
nacos/nacos-server:1.3.1
nacos的默认端口是8848,默认账号密码是nacos/nacos
8888是映射的端口,这个可以自己定义,访问的时候我们会用到它。
创建启动容器参数如下:
名称 | 描述 | 值 |
MODE | cluster模式/standalone模式 | cluster/standalone default cluster |
NACOS_SERVERS | nacos cluster地址 | nacos cluster地址 eg. ip1,ip2,ip3 |
PREFER_HOST_MODE | 是否支持hostname | hostname/ip default ip |
NACOS_SERVER_PORT | nacos服务器端口 | default 8848 |
NACOS_SERVER_IP 多网卡下的自定义nacos服务器IP | 多网卡下的自定义nacos服务器IP | |
SPRING_DATASOURCE_PLATFORM | standalone 支持 mysql | mysql / empty default empty |
MYSQL_SERVICE_HOST | mysql 的host | |
MYSQL_SERVICE_PORT | mysql 的端口 | |
MYSQL_SERVICE_DB_NAME | mysql 的数据库名称 | |
MYSQL_SERVICE_USER | mysql 的账号 | |
MYSQL_SERVICE_PASSWORD | mysql 的密码 | |
MYSQL_MASTER_SERVICE_HOST | ||
MYSQL_MASTER_SERVICE_PORT | mysql 主节点端口 | default : 3306 |
MYSQL_MASTER_SERVICE_DB_NAME | ||
MYSQL_MASTER_SERVICE_USER | ||
MYSQL_MASTER_SERVICE_PASSWORD | ||
MYSQL_SLAVE_SERVICE_HOST | mysql从节点host | |
MYSQL_SLAVE_SERVICE_PORT | ||
MYSQL_DATABASE_NUM | 数据库数量 | default :2 |
JVM_XMS | -Xms | default :2g |
JVM_XMX | -Xmx | default :2g |
如下就是创建启动成功了,注意状态为UP
192.168.88.140是我的主机地址,你改成自己的
8888就是上面说的创建容器时映射的端口
登录时默认账号密码:nacos/nacos
conf/application.properties
的内容:8.1、docker exec -it 容器ID /bin/bash,执行该命令进入容器
8.2、ll或ls,执行该命令可查看nacos下有哪些文件夹
8.3、cd conf,执行该命令进入配置文件夹
8.4、ls,执行该命令查看有哪些文件
8.5、vi application.properties,执行该命令进入编辑文件
8.6、按i进入编辑状态
8.7、按Esc退出编辑状态,按":"冒号,后输入wq,及“:wq”回车退出编辑文件
本地开发例子:将db.url.0的主机地址改成你自己的,数据库名称也是你自己的,在第4步中自己创建的。
#*************** Spring Boot Related Configurations ***************#
### Default web context path:
server.servlet.contextPath=/nacos
### Default web server port:
server.port=8848
#*************** Network Related Configurations ***************#
### If prefer hostname over ip for Nacos server addresses in cluster.conf:
# nacos.inetutils.prefer-hostname-over-ip=false
### Specify local server's IP:
# nacos.inetutils.ip-address=
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
# spring.datasource.platform=mysql
### Count of DB:
# db.num=1
### Connect URL of DB:
# db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
# db.user.0=nacos
# db.password.0=nacos
db.num=1
db.url.0=jdbc:mysql://localhost:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=123456
### Connection pool configuration: hikariCP
db.pool.config.connectionTimeout=30000
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
db.pool.config.minimumIdle=2