1. 架构图
内网SLB,不可暴露到公网,以免带来安全风险
实际使用:
2. 配置Nacos
- 进入 Nacos的 conf 目录下,在 Nacos 配置文件 application.properties 里设置端口为3333,并且设置 MySQL连接属性进行持久化配置,nacos_config 数据库使用 Nacos 自带的 nacos-mysql.sql 数据库脚本构建。
server.port=3333
###########################################################
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
db.user=root
db.password=xxxx
- 在 集群配置文件 cluster.conf 里配置集群节点,IP:Port,IP为服务器 IP 地址,端口为 Nacos 的端口,即上面配置的 server.port=3333
124.222.xxx.90:3333
124.222.xxx.90:4444
124.222.xxx.90:5555
- 如法炮制,将配置好的 Nacos 复制两份,分别将端口改为 4444/5555
- 在服务器防火墙中开放需要访问的端口 3333/4444/5555
- 进入 Nacos的 bin 目录下,执行命令启动 Nacos
sh startup.sh
或者 ./startup.sh
停止Nacos命令为:sh shutdown.sh
- 分别启动三个 Nacos,假如服务器内存不够,会出现只能启动一两个,三个服务不能全部启动的情况,可以修改 startup.sh 文件的启动参数数值大小,改小一点
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
- 分别访问 124.222.xxx.90:3333/nacos、124.222.xxx.90:4444/nacos、124.222.xxx.90:5555/nacos,查看 Nacos 的启动情况,同时在集群节点里可以看到三个节点全是 UP 的状态
3. 配置 Nginx
- 进入 Nginx 的 conf 目录下修改配置文件 nginx.conf
# 代理转发地址
upstream cluster{
server 124.222.xxx.90:3333;
server 124.222.xxx.90:4444;
server 124.222.xxx.90:5555;
}
server {
listen 1111; # 监听端口
server_name 124.222.xxx.90; # 访问地址
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#root html;
#index index.html index.htm;
proxy_pass http://cluster;
}
}
- 在服务器的防火墙里开放监听端口,即 1111
- 进入 Nginx 的 sbin 目录下,执行命令启动 Nginx
./nginx
或指定配置文件启动:./nginx -c /usr/nginx/conf/nginx.conf
- 访问 124.222.xxx.90:1111/nacos,其实就是转发到访问 124.222.xxx.90:3333/nacos或124.222.xxx.90:4444/nacos或124.222.xxx.90:5555/nacos
3. 持久化配置
在上面已经配置好了持久化配置属性,在 Nacos 的配置列表里新建一个配置,会保存到数据库中
5. 微服务注册进Nacos集群
修改 application.yml 配置文件
server:
port: 9022
spring:
application:
name: nacos-payment-provider
cloud:
nacos:
discovery:
server-addr: 124.222.xxx.90:1111 #配置Nacos地址
management:
endpoints:
web:
exposure:
include: '*'