当前位置:   article > 正文

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

springcloud 集成 nacos 集群

前言

版本选择:

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 
      
      • 1
  • jdk1.8+

    • yum install java-1.8.0-openjdk* -y
      
      • 1
  • 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
      
      • 1
    • sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo
      
      
      • 1
      • 2
    • yum -y install apache-maven
      
      • 1

(2)集群搭建

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

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

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

image-20201220214758152

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

cp cluster.conf.example  cluster.conf
  • 1

(②)修改集群配置文件

vim cluster.conf
  • 1

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

image-20201220215952456

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

vim application.properties
  • 1

image-20201221113714361

image-20201221113811311

(④)启动

进入nacos 解压后 bin目录

image-20201221114442149

命令启动

sh startup.sh
  • 1

查看启动信息

image-20201221114614555

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

image-20201221114701504

image-20201221114708584


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

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

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

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

scp -r root@192.168.146.131:/root/nacos/ /usr/local/
  • 1

image-20201221124126851

启动nacos

(⑥)查看Nacos集群状态

image-20201221124653983

查看集群状态

image-20201221124936768

(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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

image-20201221125636620

image-20201221125755087

image-20201221125851833

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

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

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

下载nginx

docker pull nginx
  • 1

启动nginx

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

宿主机新建目录

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

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

image-20201221130920778

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

docker cp nginx:/etc/nginx/nginx.conf /usr/local/docker-soft/nginx/conf/nginx.conf
  • 1
docker cp nginx:/etc/nginx/conf.d/default.conf /usr/local/docker-soft/nginx/conf.d/default.conf
  • 1

image-20201221131347460

删除老容器

docker rm -f nginx
  • 1

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

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

image-20201221132854714

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;
	}
}


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

启动新容器,配置文件挂载

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
  • 1

image-20201221132623521

image-20201221132938042

项目连接

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

image-20201221133118509

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

image-20201221133213967

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/499549
推荐阅读
相关标签
  

闽ICP备14008679号