为什么叫Nacos
前面四个字母分别表示 Naming 和 Configuration 的前两个字母, 最后一个s 为 Service
Nacos是什么
Nacos 是阿里巴巴的新开源项目,其核心定位是 “一个更易于帮助构建云原生应用的集注册中心与配置中心于一体的管理平台”。
Nacos安装和启动
下载地址:https://github.com/alibaba/nacos/tags
解压安装包:
[root@localhost ~]# cd /usr/upload
[root@localhost upload]# tar -zxvf nacos-server-1.4.1.tar.gz -C /usr/local
启动
./startup.sh
./startup.sh -m standalone #非集群模式启动
[root@localhost local]# cd nacos/bin/
[root@localhost bin]# ./startup.sh -m standalone #非集群模式启动
启动成功结尾输出内容
... ...
nacos is starting with standalone
nacos is starting,you can check the /usr/java/nacos/logs/start.out
关闭
./shutdown.sh
[root@localhost bin]./shutdown.sh
The nacosServer(3543) is running...
Send shutdown request to nacosServer(3543) OK
[root@localhost bin]
测试
浏览器访问:http://192.168.226.203:8848/nacos,默认用户名/密码为: nacos/nacos
成功如下页面
nacos配置中心(存放配置文件)
springboot项目中只需要 bootstrap.yml
文件
spring:
cloud:
nacos:
config:
server-addr: 192.168.226.203:8848 #nacos配置中心的地址
prefix: nacos-config #可省略,默认是注册到nacos服务名
file-extension: yaml #后缀名,只支持 properties 和 yaml 类型
nacos 配置管理中页面中:
“配置管理”–>“配置列表”---->“+” Data ID:prefix.file-extension 配置格式:yaml
注意:客户端配置文件的名称必须为`bootstrap.yml`
`bootstrap.yml`比 `applicaton.yml` 优先加载,应用于系统级别参数配置,一般不会变动;
`application.yml`应用于SpringBoot项目的自动化配置;
Nacos开机自启
编写开机自启文件 添加nacos.service文件
vim /lib/systemd/system/nacos.service
文件内容
[Unit]
Description=nacos
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nacos/bin/startup.sh -m standalone
ExecReload=/usr/local/nacos/bin/shutdown.sh
ExecStop=/usr/local/nacos/bin/shutdown.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
找到并修改nacos的startup.sh
修改JAVA_HOME路径并注销之后的3行配置,如下:
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/local/jdk1.8.0_191 路径为jdk位置
#[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java 注销
#[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java 注销
#[ ! -e "$JAVA_HOME/bin/java" ] && unset JAVA_HOME 注销
设置开机启动
systemctl daemon-reload #重新加载服务配置
systemctl enable nacos.service #设置为开机启动
systemctl start nacos.service #启动nacos服务
systemctl stop nacos.service #停止nacos服务
持久化
修改conf/application.properties
### If use MySQL as datasource:
spring.datasource.platform=mysql #放开
### Count of DB:
db.num=1 #放开
### Connect URL of DB:
db.url.0=jdbc:mysql://192.168.31.19:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC #放开并修改连接地址
db.user.0=root #放开
db.password.0=1111 #放开
建库建表
1.创建nacos库
2.找到conf/nacos-mysql.sql,内容复制到MySQL中执行
重启nacos,上传配置文件,测试是否把配置文件持久化到mysql
结果如下
nacos集群搭建
修改cluster.conf
使用同一台虚拟机 不同的端口号
设置虚拟机内存为3G
cd /usr/local/nacos/conf #找到配置
cp cluster.conf.example cluster.conf #复制重命名
vim cluster.conf 编辑
复制3台nacos 以端口命名区分
> cd /usr/local #找到nacos
> mkdir nacos-cluster #创建文件夹nacos-cluster
> cp -r nacos nacos-cluster/nacos-8848 #复制出第1台端口为8848
> cp -r nacos nacos-cluster/nacos-8849 #复制出第2台端口为8849
> cp -r nacos nacos-cluster/nacos-8850 #复制出第3台端口为8850
修改3台nacos的ip
vim /usr/local/nacos-cluster/nacos-8849/conf/application.properties
vim /usr/local/nacos-cluster/nacos-8850/conf/application.properties
分别修改对应的端口号
启动集群
cd /usr/local/nacos-cluster/nacos-8848/bin
./startup.sh
cd /usr/local/nacos-cluster/nacos-8849/bin
./startup.sh
cd /usr/local/nacos-cluster/nacos-8850/bin
./startup.sh
查看nacos运行状态
ps -ef | grep nacos
结果页
打开nacos配置中心查看启动服务
搭建nginx
安装c语言环境
> yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
下载nginx 下载位置默认当前目录
cd /usr/upload/ #进入upload目录
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz #下载
解压
tar -zxvf nginx-1.12.0.tar.gz
配置安装路径
cd nginx-1.12.0
./configure --prefix=/usr/local/nginx
编译并安装
make && make install
配置nginx代理nacos集群
vim /usr/local/nginx/conf/nginx.conf
启动nginx
cd /usr/local/nginx/sbin
./nginx
关闭nginx
cd /usr/local/nginx/sbin
./nginx -s stop