版本选择:
spring-boot:2.3.2.RELEASE
spring-cloud:Hoxton.SR8
spring-cloud-alibaba:2.2.3.RELEASE
博客前瞻:
springcloud-alibaba-nacos(1)nacos组件功能介绍与下载安装
springcloud-alibaba-nacos(2)nacos启动,解决启动报错问题
springcloud-alibaba-nacos(3)nacos数据持久化到数据库
springcloud-alibaba-nacos(4)nacos作为注册中心
springcloud-alibaba-nacos(5)nacos作为配置中心
springcloud-alibaba-nacos(6)nacos中group以及namespace的使用
在前边的一些文章中,我已经初步演示了Nacos
的一些用法,我突然想到,既然Nacos
耦合度变高了(注册中心+配置中心),那么我们就更要保证Nacos的可用性了啊!我们服务可用性,我们应该针对Nacos
,搭建一个集群!
nacos集群至少需要三个节点,因此需要准备三台服务器
数据库
附上docker 安装语法
docker run -d -p 3306:3306 --name mysql -v /usr/local/mysql/conf:/etc/mysql/conf.d -v /usr/local/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.30
jdk1.8+
yum install java-1.8.0-openjdk* -y
Maven 3.2.x+
sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo
yum -y install apache-maven
我们首先,需要选择一台服务器,进行以下操作
nacos
解压目录下的config
目录下的cluster.conf.example
文件便是nacos
集群配置示例文件!
我们首先,在任意一台服务器解压nacos
,并对目录中的cluster.conf.example
复制一份,并更名为cluster.conf
cp cluster.conf.example cluster.conf
vim cluster.conf
更改为自己服务器Ip
以及集群搭建完毕后nacos
占用端口号情况
Nacos
启动端口号连接数据库vim application.properties
进入nacos
解压后 bin
目录
命令启动
sh startup.sh
查看启动信息
tail -100f /root/nacos/logs/start.out
进行以上操作后,部署Nacos
集群时,单台服务器便完成了!!!我们只需要对我们集群的其他服务器继续进行以下操作即可
远程拷贝nacos
目录至集群服务器其他节点
上边的1 2 3 4步操作 我是在192.168.146.131
服务器上进行的,所以呢,只需要将nacos
目录拷贝到130
、132
服务器即可
scp -r [email protected]:/root/nacos/ /usr/local/
启动nacos
查看集群状态
##指定当前服务端口号
#server:
# port: 30020
spring:
application:
#指定当前服务名字
name: app-login
cloud:
nacos:
#连接Nacos集群
server-addr: 192.168.146.130:8847,192.168.146.131:8847,192.168.146.132:8847
# discovery:
# # nacos服务端位置(注册中心服务端地址的实际使用)
# server-addr: ${spring.cloud.nacos.server-addr}
config:
# server-addr: ${spring.cloud.nacos.server-addr}
file-extension: yml
上边这种集群连接方式有点不太好,如果我们新加了节点或者更改了节点那么所有项目的连接地点都需要更改,nacos集群动态扩容/收缩性较差…
因此,我们采用nginx反向代理的方式
docker pull nginx
docker run --name nginx -d -p81:80 -itd nginx
我是建在/usr/local/docker-soft/nginx
目录下
一个conf
目录,一个conf.d
目录
docker cp nginx:/etc/nginx/nginx.conf /usr/local/docker-soft/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d/default.conf /usr/local/docker-soft/nginx/conf.d/default.conf
docker rm -f nginx
cd /usr/local/docker-soft/nginx/conf.d/
vim default.conf
server {
listen 80;
listen [::]:80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
upstream cluster{
server 192.168.146.130:8847;
server 192.168.146.131:8847;
server 192.168.146.132:8847;
}
server {
listen 8846;
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;
}
}
docker run --name nginx -d -it -p 8846:8846 -v /usr/local/docker-soft/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/docker-soft/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf nginx
##指定当前服务端口号
#server:
# port: 30020
spring:
application:
#指定当前服务名字
name: app-login
cloud:
nacos:
#更改为nginx端口
server-addr: 192.168.146.131:8846
config:
file-extension: yml
任意登陆一个集群节点查看
如此,便完成了对Nacos
集群的配置与连接了…