SpringCloudAlibaba 学习第一节 Nacos 下
Nacos 持久化配置和集群
Nacos集群架构简要介绍
官网介绍https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html,为了避免单点故障,学习官网推荐的Nacos集群配置,
,上图官网架构图比较模糊, Virtual IP 使用Nginx代理,3台Nacos 做集群,Mysql 做持久化配置。梳理出架构图如下,默认Nacos使用的是嵌入式数据库实现数据存储。所以如果需要启动多个Nacos节点,数据存储是存在一致性的问题的。为了解决这个问题,Nacos采用了集中式的存储方式来支持集群化部署,目前仅支持Mysql的存储。官方配置案例https://nacos.io/zh-cn/docs/deployment.html
单机Nacos持久化配置
默认持久化derby切换至Mysql。Nacos 1.3.2版本是默认支持Mysql 8.0。需要在nacos/conf/application.properties
添加如下配置,并且nacos/conf/nacos-mysql.sql
有需要在数据库执行的SQL脚本内容执行完成后
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://localhost:3306/nacos_config?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
db.user=用户名
db.password=密码
重新启动Nacos之后,会得到全新的nacos
发布新的配置之后,在mysql数据库可以看到新的配置
Nacos集群配置
本地的nacos/conf/cluster.conf.example文件修改:新建cluster.conf 文件,对照cluster.conf.example,添加自己的配置,拷贝3份并修改端口号
#2020-09-28T17:02:32.878
192.168.0.169:3333
192.168.0.169:4444
192.168.0.169:5555
192.168.0.169:8848
安装nginx 并修改配置,具体修改内容如下
#gzip on;
# nginx 实现负载均衡
upstream cluster {
server 192.168.0.169:3333;
server 192.168.0.169:4444;
server 192.168.0.169:5555;
server 192.168.0.169:8848;
}
server {
# 换一个监听端口
listen 10086;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
# root html;
# index index.html index.htm;
# 服务代理
proxy_pass http://cluster;
}
}
启动nginx 并启动nacos,电脑有点卡先启动两台Nacos服务
微服务9002 注册进入Nacos。application.yml配置文件修改
server:
port: 9002
spring:
application:
name: nacos-payment-provider
cloud:
nacos:
discovery:
server-addr: localhost:10086 # 配置nacos地址
management:
endpoints:
web:
exposure:
include: '*'
注册成功