SpringcloudAlibaba--nacos2.1.1集群手把手搭建

前言:(有一点要注意SpringCloudAlibaba版本到了2.2.7RElEASE版本之上后服务端也至少得使用2.x以上的版本,这里使用nacos2.1.1版本)

本项目代码与笔记已存放在Gitee仓库 地址:代码,笔记

1.集群模式

官方文档: nacos集群搭建官方文档

集群部署结构图:

nacos集群部署结构图

SLB:负载均衡,通常使用nginx这个中间层来分别分发到我们的nacos服务器,分别给不同的服务器部署nacos。

2. 预备环境准备

请确保是在环境中安装使用: 各种安装方式可以查看我的其他博客的详细讲解

  1. 64 bit OS Linux/Unix/Mac,推荐使用Linux系统。 linux基础环境搭建
  2. 64 bit JDK 1.8+; linux安装jdk的两种方式
  3. Maven 3.3.x+; linux使用wget安装Maven
  4. nginx作为负载均衡 linux使用mwget安装配置nginx
  5. mysql docker 常用命令以及安装mysql
  6. 3个或3个以上Nacos节点才能构成集群。

3.Nacos Server 部署

3.1 安装nacos

下载源码编译:https://github.com/alibaba/Nacos/releases 可以用迅雷下载

这里直接在linux里使用wget下载

  • 先进入/usr/local
cd /usr/local
  • 创建目录
mkdir nacos-2.1.1
  • 进入目录
cd nacos-2.1.1
  • 下载nacos
wget https://github.com/alibaba/nacos/releases/download/2.1.1/nacos-server-2.1.1.tar.gz
  • 解压
tar -zxvf nacos-server-2.1.1.tar.gz
  • 重命名文件夹nacos 因为要在一台虚拟机里搭建三个nacos伪集群。所以要把上面的下载解压重命名进行三次

分别重命名为nacos8870,nacos8872,nacos8874

最好不要使用连续的端口 ,不然可能出现地址已在使用报错。

mv nacos nacos8870
...
...

xkTGnI.png

  • 解压完三个nacos后删除压缩包
rm -rf nacos-server-2.1.1.tar.gz

3.2 修改application.properties的配置

  • 分别配置nacos的/conf/application.properties的配置,使用外置数据源(配置数据源为mysql,因为它的默认的数据源是内嵌的数据源,默认存在内存中的,三个进程各有各的进程,到时候服务注册会注册到各自的nacos服务器中,为了保证数据一致性,这里使用mysql数据源,需下载配置mysql5.7+)

    这里以修改8870为例子,后面再修改其他两个nacos服务配置

    cd nacos8870/conf
    vim application.properties
    
  
  - 修改对应的端口比如8870
  - 取消数据源注释·,修改数据源为mysql
- 数据的连接数量打开
  
  ```java
  server.port=8870
    
  spring.datasource.platform=mysql
  
  db.num=1
  ##注意改成自己的mysql用户名密码
  db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReConnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
  db.usr.0=root
  db.password.0=123456

xki3qK.png

3.3 创建mysql的nacos数据库

在windows版本的nacos/conf下有一个mysql的脚本 用navicat连接上我们的linux的mysql执行脚本创建数据库

xiXxot.png

xijNY6.png

3.4添加节点

  • 将conf/cluster.conf.example改为cluster.conf 。添加节点配置

  • cp cluster.conf.example cluster.conf 
    
#编辑 cluster.conf 
vim  cluster.conf 
#ip:port 
192.168.116.100:8870
192.168.116.100:8872
192.168.116.100:8874

xkTDjs.png

3.5 修改bin\startup.sh)

  • 如果出现内存不足:修改脚本(bin\startup.sh)的jvm参数

  • cd /usr/local/nacos-2.1.1/nacos8870/bin
    vim startup.sh
    
   JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m"

3.6 启动nacos

cd /usr/local/nacos-2.1.1/nacos8870/bin
./startup.sh

xkiUGd.png

  • 访问nacos8870 如果重启虚拟机后访问被拒绝可能是服务没启动,后面可以设置开机自启

xkT6H0.png

3.7 设置nacos开机自启

#查看自己的javahome
vim /etc/profile
#我的如下
export JAVA_HOME=/usr/local/jdk1.8/jdk1.8.0_333
# 编辑开机自启脚本
vim /lib/systemd/system/nacos8870.service
# 添加以下内容  注意自己的javahome和nacos的服务路径
[Unit]
Description=nacos
After=network.target

[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/jdk1.8/jdk1.8.0_333"
# 启动后面可以加上 -m standalone/cluster 表示以单机/集群方式启动,默认为集群
ExecStart=/usr/local/nacos-2.1.1/nacos8870/bin/startup.sh
ExecReload=/usr/local/nacos-2.1.1/nacos8870/bin/shutdown.sh
ExecStop=/usr/local/nacos-2.1.1/nacos8870/bin/shutdown.sh
PrivateTmp=true

[Install]
WantedBy=multi-user.target
  • 配置完成后启动服务,执行以下命令
#重新加载服务
systemctl daemon-reload
#启用服务
systemctl enable nacos8870.service
#启动服务
systemctl start nacos8870.service
#重启虚拟机
reboot

3.8 复制8870服务的配置文件到8872,8874

#进入包含三个安装包的目录
cd /usr/local/nacos-2.1.1

#复制application.properties 到8872
cp ./nacos8870/conf/application.properties ./nacos8872/conf/application.properties 
cp:是否覆盖"./nacos8872/conf/application.properties"? y

#复制application.properties 到8874
cp ./nacos8870/conf/application.properties ./nacos8874/conf/application.properties 
cp:是否覆盖"./nacos8874/conf/application.properties"? y

#复制集群配置文件到8872
cp ./nacos8870/conf/cluster.conf  ./nacos8872/conf/cluster.conf 

#复制集群配置文件到8874
cp ./nacos8870/conf/cluster.conf  ./nacos8874/conf/cluster.conf 

3.9 编辑application.properties 文件

vim nacos8872/conf/application.properties 
#修改端口为8872
vim nacos8874/conf/application.properties 
#修改端口为8874
  • 同理设置这两个服务的开机自启

nacos8872开机自启

# 编辑开机自启脚本
vim /lib/systemd/system/nacos8872.service
# 添加以下内容  注意自己的javahome和nacos的服务路径
[Unit]
Description=nacos
After=network.target

[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/jdk1.8/jdk1.8.0_333"
# 启动后面可以加上 -m standalone/cluster 表示以单机/集群方式启动,默认为集群
ExecStart=/usr/local/nacos-2.1.1/nacos8872/bin/startup.sh
ExecReload=/usr/local/nacos-2.1.1/nacos8872/bin/shutdown.sh
ExecStop=/usr/local/nacos-2.1.1/nacos8872/bin/shutdown.sh
PrivateTmp=true

[Install]
WantedBy=multi-user.target
  • 配置完成后启动服务,执行以下命令
#重新加载服务
systemctl daemon-reload
#启用服务
systemctl enable nacos8872.service
#启动服务
systemctl start nacos8872.service

8874开机自启

# 编辑开机自启脚本
vim /lib/systemd/system/nacos8874.service
# 添加以下内容  注意自己的javahome和nacos的服务路径
[Unit]
Description=nacos
After=network.target

[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/jdk1.8/jdk1.8.0_333"
# 启动后面可以加上 -m standalone/cluster 表示以单机/集群方式启动,默认为集群
ExecStart=/usr/local/nacos-2.1.1/nacos8874/bin/startup.sh
ExecReload=/usr/local/nacos-2.1.1/nacos8874/bin/shutdown.sh
ExecStop=/usr/local/nacos-2.1.1/nacos8874/bin/shutdown.sh
PrivateTmp=true

[Install]
WantedBy=multi-user.target
  • 配置完成后启动服务,执行以下命令
#重新加载服务
systemctl daemon-reload
#启用服务
systemctl enable nacos8874.service
#启动服务
systemctl start nacos8874.service
#重启虚拟机
reboot

3.10 登录nacos管理平台查看节点信息

xkH1eI.png

4.nginx反向代理nacos集群配置

下面我会介绍如何在cloudalibaba框架中使用nacos集群,前面的基础框架搭建过程以及代码在我的SpringCloudAlibaba专栏有详细介绍

  • 首先我们得使用nginx负载均衡进行分发,指向我们的nacos集群

这里已经提前安装好了nginx

xEIern.png

xEIaa6.png

  • 进入默认配置文件
cd nginx/conf
  • 打开默认配置文件
 vim nginx.conf
  • 修改集群负载均衡配置,官方推荐,nginx方向代理,注意修改成自己的ip端口,还有nginx配置的“;”,(这里我把我安装的nginx配置端口为8089,并设置了开机自启,不会的可以参照我的文章开头推荐的环境准备进行配置)

如果访问的是虚拟机的localhost:8089/nacos 就会负载均衡访问我们的nacos集群地址http://nacoscluster/nacos/

    upstream nacoscluster {
        server 127.0.0.1:8870;
        server 127.0.0.1:8872;
        server 127.0.0.1:8874;
    }
    server {
        listen        8089;
        server_name   localhost;
        
        location /nacos/ {
            proxy_pass http://nacoscluster/nacos/;
        }
    }
  • 修改配置,保存退出,重启虚拟机

    reboot
    

xETcUP.png

  • 配置测试成功
    xEHlwR.png

5.修改idea配置

5.1 修改SpringCloudAlibaba配置

  • 修改SpringCloudAlibaba的stock和order服务的nacos配置

xELpQO.png

xEHyff.png

  • 启动服务这时我的控制台报错,原因是我的springCloudAlibababa版本是2.2.7RELEASE,linux的nacos客户端版本是2.1.1 我尝试2.2.7RELEASEspringCloudAlibababa版本连接windows的nacos2.1.1 并不会报错但是连接linux的此版本就会报错,后来参照网上的把springCloudAlibababa版本换成了2.1.2RELEASE就没报错了。

具体的版本问题我也并不知为何,只是做了简单的测试,现在采用的版本如下

xEqcLQ.png

5.2访问linux nacos管理平台

xELkTA.png

结语:

好啦以上就是我亲自测试搭建的SpringCloudAlibaba整合nacos集群,后续的其他组件手把手整合会继续在我的专栏SpringCloudAlibaba持续更新。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在Docker中安装Nacos 2.1.1集群并配置MySQL 8,可以按照以下步骤进行操作: 1. 首先,确保您已经安装了Docker和Docker Compose。 2. 下载Nacos 2.1.1的安装包,解压缩后进入nacos/conf目录。 3. 在conf目录中,创建一个新的nacos-config-custom.yaml文件,并将以下配置复制到该文件中: ```yaml server: context-path: /nacos tomcat: max-http-post-size: 50000000 modify-username: false file-extension: - yml - properties - xml - json spring: profiles: active: dev datasource: platform: mysql driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://mysql-container:3306/nacos_devtest?useUnicode=true&characterEncoding=utf8&autoReconnect=true&serverTimezone=UTC username: ${MYSQL_USERNAME:nacos} password: ${MYSQL_PASSWORD:nacos} maxi-pool-size: 20 mini-idle: 10 max-idle: 20 acquire-increment: 10 time-between-eviction-runs-millis: 20000 jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 management.endpoints.web.exposure.include: '*' ``` 这个配置文件包含了Nacos与MySQL的连接信息。注意修改url、username和password,确保与您的MySQL集群配置一致。 4. 创建一个docker-compose.yaml文件,并将以下配置复制到该文件中: ```yaml version: '3' services: mysql-container: image: mysql:8 container_name: mysql-nacos environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_DATABASE=nacos_devtest ports: - 3306:3306 nacos-standalone-1: image: nacos/nacos-server:2.1.1 hostname: nacos-standalone-1 container_name: nacos-standalone-1 volumes: - ./conf/nacos/config/:/home/nacos/init.d/custom.properties - ./logs/nacos:/home/nacos/logs ports: - 8848:8848 depends_on: - mysql-container environment: - PREFER_HOST_MODE=hostname nacos-standalone-2: image: nacos/nacos-server:2.1.1 hostname: nacos-standalone-2 container_name: nacos-standalone-2 volumes: - ./conf/nacos/config/:/home/nacos/init.d/custom.properties - ./logs/nacos:/home/nacos/logs ports: - 8849:8848 depends_on: - mysql-container environment: - PREFER_HOST_MODE=hostname ``` 这个docker-compose文件定义了一个MySQL容器和两个Nacos容器,分别用于部署Nacos集群。MySQL容器使用MySQL 8的镜像,并设置了密码和数据库名称。Nacos容器使用Nacos 2.1.1的镜像,并将配置文件和日志目录映射到本地。 5. 在命令行中进入docker-compose.yaml所在的目录,并运行以下命令启动集群: ``` docker-compose up -d ``` 这会启动集群并在后台运行。 6. 等待一段时间,然后通过访问http://localhost:8848/nacos/ 来验证Nacos集群是否成功部署。您将看到Nacos的登录界面。 现在,您已经成功地使用Docker Compose安装了Nacos 2.1.1集群,并配置了MySQL 8。您可以进一步在Nacos中配置您的应用程序和服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厌世小晨宇yu.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值