SpringCloudAlibaba之Nacos的持久化和高可用——详细讲解

目录

一、Nacos持久化

1.持久化说明

2.安装mysql数据库5.6.5+以上版本(略)

3.修改配置文件

二、nacos高可用

1.集群说明

2.nacos集群架构图

2.集群搭建注意事项

3.集群规划

4.搭建nacos集群

5.安装Nginx

[6.配置nginx conf配置文件](#6.配置nginx conf配置文件)

7.启动nginx进行测试即可


一、Nacos持久化

1.持久化说明

在0.7版本之前,在单机模式时nacos使用嵌入式数据库(derby)实现数据的存储,不方便观察数据存储的基本情况。

0.7版本增加了支持mysql数据源能力,具体的操作步骤:

1.安装数据库,版本要求:5.6.5+

2.初始化mysql数据库,数据库初始化文件:nacos-mysql.sql

3.修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。

2.安装mysql数据库5.6.5+以上版本(略)

  • 添加官方的yum源创建并编辑mysql-community.repo文件

vi /etc/yum.repos.d/mysql-community.repo

  • 粘贴以下内容到源文件中

mysql57-community

name=MySQL 5.7 Community Server

baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/

enabled=1

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

  • 安装mysql

yum install mysql-community-server -y

  • 启动mysql数据库

systemctl start mysqld

  • 修改mysql数据库密码

grep 'temporary password' /var/log/mysqld.log

mysqladmin -u root -p password 回车 输入原始密码 在输入新的密码

  • 登录mysql

mysql -uroot -p'yourPwd'

  • 修改远程连接

grant all privileges on *.* to 'root'@'%' identified by 'yourPwd' with grant option;

flush privileges;

3.修改配置文件

spring.datasource.platform=mysql

db.num=1

db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?

characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true

&useUnicode=true&useSSL=false&serverTimezone=UTC

db.user=root

db.password=yourPwd

二、nacos高可用

1.集群说明

集群 cluster : 统一种软件服务的多个节点对一个系统提供服务称之为这个软件服务集群 tomcat集群 mysql集群 redis集群 es集群...

集群解决问题:

1.并发访问压力

2.单节点故障问题

2.nacos集群架构图

集群部署说明

2.集群搭建注意事项

注意:

a.3个或3个以上Nacos节点才能构成集群。

b.要求虚拟机内存分配必须大于2G以上

3.集群规划

node cluster:

ip 8845 nacos01

ip 8846 nacos02

ip 8847 nacos03

ip 9090 nginx

ip 3306 mysql

4.搭建nacos集群

1).将nacos安装包从新解压缩

2).开启nacos mysql持久化

注意:数据库中不能存在原始数据

3).修改nacos conf目录中cluster.conf文件添加所有集群节点

ip:8845

ip:8846

ip:8847

4).将修改后nacos复制三份

注意:修改为不同端口信息

5).分别启动三台机器

./startup.sh

5.安装Nginx

  • 0.安装必要依赖

yum install -y gcc pcre-devel zlib-devel

  • 1.下载Nginx

http://nginx.org/en/download.html

  • 2.将Nginx上传到linux中,并解压缩

tar -zxvf nginx-1.11.1.tar.gz

  • 3.查看Nginx安装目录

root@localhost nginx-1.11.1# ls

auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src

  • 4.在Nginx安装目录中执行如下命令:(指定安装位置)

./configure --prefix=/usr/nginx

  • 5.执行上述命令后,执行如下命令:

make && make install

-6. 启动

1.进入sbin目录 启动命令:./nginx

查看nginx 是否启动成功 : ps aux|grep nginx 默认监听端口为80:端口 http://主机:80

2.关闭 Nginx 服务 ./nginx -s stop

3.加载配置启动 ./nginx -c /usr/nginx/conf/nginx.conf

6.配置nginx conf配置文件

a.加入如下配置:

upstream nacos-servers {

server ip:8845;

server ip:8846;

server ip:8847;

}

b.修改

location / {

proxy_pass http://nacos-servers/;

}

7.启动nginx进行测试即可

相关推荐
知守观5 小时前
@Transactional 事务失效排查,try-catch 吞异常导致回滚失败(附源码分析)
后端·spring
Flynt5 小时前
"MySQL搜不动就上ES"?我先在50万行数据上测了它自带的ngram全文索引
mysql·elasticsearch·搜索引擎
律宏阔5 小时前
WSL Docker 端口明明空闲,但就是绑不上端口
linux·windows
律宏阔5 小时前
WSL 突然断网,无法 ping 内网或外网
linux·windows
穷人小水滴5 小时前
用容器编译 VirtualBox 虚拟机软件 (ArchLinux, podman)
linux·容器·virtualbox
imDwAaY6 小时前
Redo Log 和 Binlog 为什么需要两阶段提交?
后端·mysql
数据库小学妹6 小时前
MySQL深分页优化:LIMIT大偏移的根因分析与五种解法对比
数据库·mysql·性能优化
乱码三千6 小时前
如何优雅地直连无公网 IP 的远程 GPU 服务器
linux·人工智能·程序员
yunwei376 小时前
使用 eBPF 跟踪 Nginx 请求
linux·后端·性能优化
yunwei376 小时前
使用 eBPF 跟踪 MySQL 查询
linux·后端·性能优化