springcloud-alibaba-nacos(7)nacos集群搭建整合微服务项目

文章目录

  • 前言
  • 一、Nacos集群搭建
    • (1)Nacos集群搭建必要环境准备
    • (2)集群搭建
      • (①)解压安装Nacos,复制集群文件
      • (②)修改集群配置文件
      • (③)更改`Nacos`启动端口号连接数据库
      • (④)启动
      • (⑤)其他集群节点服务器操作
      • (⑥)查看Nacos集群状态
    • (3)cloud微服务项目连接Nacos集群方式一
    • (4)cloud微服务项目连接Nacos集群方式二
      • 下载nginx
      • 启动nginx
      • 宿主机新建目录
      • 拷贝容器内nginx配置文件至宿主机
      • 删除老容器
      • 更改配置文件,使用upstream负载均衡
      • 启动新容器,配置文件挂载
      • 项目连接

前言

版本选择:

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集群搭建

(1)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
      

(2)集群搭建

我们首先,需要选择一台服务器,进行以下操作

(①)解压安装Nacos,复制集群文件

nacos解压目录下的config目录下的cluster.conf.example文件便是nacos集群配置示例文件!

springcloud-alibaba-nacos(7)nacos集群搭建整合微服务项目_第1张图片

我们首先,在任意一台服务器解压nacos,并对目录中的cluster.conf.example 复制一份,并更名为cluster.conf

cp cluster.conf.example  cluster.conf

(②)修改集群配置文件

vim cluster.conf

更改为自己服务器Ip以及集群搭建完毕后nacos占用端口号情况

springcloud-alibaba-nacos(7)nacos集群搭建整合微服务项目_第2张图片

(③)更改Nacos启动端口号连接数据库

vim application.properties

springcloud-alibaba-nacos(7)nacos集群搭建整合微服务项目_第3张图片

image-20201221113811311

(④)启动

进入nacos 解压后 bin目录

springcloud-alibaba-nacos(7)nacos集群搭建整合微服务项目_第4张图片

命令启动

sh startup.sh

查看启动信息

springcloud-alibaba-nacos(7)nacos集群搭建整合微服务项目_第5张图片

tail -100f /root/nacos/logs/start.out

springcloud-alibaba-nacos(7)nacos集群搭建整合微服务项目_第6张图片

image-20201221114708584


进行以上操作后,部署Nacos集群时,单台服务器便完成了!!!我们只需要对我们集群的其他服务器继续进行以下操作即可

(⑤)其他集群节点服务器操作

远程拷贝nacos目录至集群服务器其他节点

上边的1 2 3 4步操作 我是在192.168.146.131服务器上进行的,所以呢,只需要将nacos目录拷贝到130132服务器即可

scp -r [email protected]:/root/nacos/ /usr/local/

springcloud-alibaba-nacos(7)nacos集群搭建整合微服务项目_第7张图片

启动nacos

(⑥)查看Nacos集群状态

springcloud-alibaba-nacos(7)nacos集群搭建整合微服务项目_第8张图片

查看集群状态

springcloud-alibaba-nacos(7)nacos集群搭建整合微服务项目_第9张图片

(3)cloud微服务项目连接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

springcloud-alibaba-nacos(7)nacos集群搭建整合微服务项目_第10张图片

springcloud-alibaba-nacos(7)nacos集群搭建整合微服务项目_第11张图片

springcloud-alibaba-nacos(7)nacos集群搭建整合微服务项目_第12张图片

(4)cloud微服务项目连接Nacos集群方式二

上边这种集群连接方式有点不太好,如果我们新加了节点或者更改了节点那么所有项目的连接地点都需要更改,nacos集群动态扩容/收缩性较差…

因此,我们采用nginx反向代理的方式

下载nginx

docker pull nginx

启动nginx

docker run --name nginx -d -p81:80 -itd nginx

宿主机新建目录

我是建在/usr/local/docker-soft/nginx目录下

一个conf目录,一个conf.d目录

springcloud-alibaba-nacos(7)nacos集群搭建整合微服务项目_第13张图片

拷贝容器内nginx配置文件至宿主机

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

springcloud-alibaba-nacos(7)nacos集群搭建整合微服务项目_第14张图片

删除老容器

docker rm -f nginx

更改配置文件,使用upstream负载均衡

cd /usr/local/docker-soft/nginx/conf.d/
vim default.conf

springcloud-alibaba-nacos(7)nacos集群搭建整合微服务项目_第15张图片

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

springcloud-alibaba-nacos(7)nacos集群搭建整合微服务项目_第16张图片

image-20201221132938042

项目连接

##指定当前服务端口号
#server:
#  port: 30020
spring:
  application:
    #指定当前服务名字
    name: app-login
  cloud:
    nacos:
      #更改为nginx端口
      server-addr: 192.168.146.131:8846
      config:
        file-extension: yml

image-20201221133118509

任意登陆一个集群节点查看

springcloud-alibaba-nacos(7)nacos集群搭建整合微服务项目_第17张图片

如此,便完成了对Nacos集群的配置与连接了…

你可能感兴趣的:(cloud,alibaba,eureka,consul)