Centos系统安装部署nacos2.2.1集群

一、前言

前面已经对SpringCloudAlibaba这个微服务组合框架进行了初步的学习,nacos是必不可少的一个组件。安装部署nacos渐渐地成了我们程序员的一个基本功,或者说是有没有真正使用过或运用过的一个参考的标志。近期在实施一个项目,公司产品采用集群模式部署nacos,听说这个部署很麻烦,处于好奇,今天抽时间一探究竟。

二、环境准备

2.1 版本说明

|组件 |版本 |备注 |
|:--|
|nacos |2.2.1 | |
|mysql |5.7.41 |部署参考 《linux下安装mysql-5.7.23详细步骤》 |
|jdk |1.8.0_251 | 《linux下安装JDK详细步骤》 |

2.2 服务部署规划

|主机名 |IP |部署端口 |路径 |说明 |
|:--|
|node01 |192.168.33.11 |8848 |/opt/nacos |nacos1 |
|node02 |192.168.33.12 |8848 |/opt/nacos |nacos2 |
|node03 |192.168.33.13 |8848 |/opt/nacos |nacos3 |
|node04 |192.168.33.14 |3306 |/opt/mysql |mysql数据库服务 |

三、部署安装

3.1 安装包准备

下载 nacos-server-2.2.1.tar.gz
将压缩包拷贝到/opt目录,进行解压

tar xvf nacos-server-2.2.1.tar.gz

3.2 配置

集群配置

进入到nacos的conf目录,我们将cluster.conf.example文件拷贝一份进行编辑,具体如下

cp cluster.conf.example cluster.conf

image.png#479px #214px
修改内容如下:
image.png#474px #232px
这里我们是在三台服务器上运行三台nacos服务实例,所以ip地址为上面规划的三个地址。

数据源配置

修改文件application.properties

vi application.properties

修改如下:
image.png#468px #92px
其实,后面跟不跟.0都是一样的,因为我们只配置了一台数据库。当然如果你配置了数据库的主备模式,也就是说有多台mysql的话,这里可以配置多个,此时就需要分别指定了。
在mysql中,创建nacos数据库,将目录下mysql-schema.sql导入到数据库中。

3.3 启动

如果启动报如下错误
image.png#458px #370px
具体原因是Nacos提供简单的鉴权实现,为防止业务错用的弱鉴权体系,我们需要开启鉴权,同时自定义用于生成JWT令牌的密钥,application.properties中的配置信息为。

nacos.core.auth.system.type=nacos
nacos.core.auth.enabled=true

注意:在2.2.0.1版本后,社区发布版本将移除以文档如下值作为默认值,需要自行填充,否则无法启动节点。自定义密钥时,推荐将配置项设置为Base64编码的字符串,且原始密钥长度不得低于32字符。在线base64生成 https://base64.us/

nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789

继续启动,会提示
image.png
开启鉴权功能后,服务端之间的请求也会通过鉴权系统的影响。考虑到服务端之间的通信应该是可信的,因此在1.2~1.4.0版本期间,通过User-Agent中是否包含Nacos-Server来进行判断请求是否来自其他服务端。
但这种实现由于过于简单且固定,导致可能存在安全问题。因此从1.4.1版本开始,Nacos添加服务身份识别功能,用户可以自行配置服务端的Identity,不再使用User-Agent作为服务端请求的判断标准。
开启方式:

### 开启鉴权
nacos.core.auth.enabled=true

### 关闭使用user-agent判断服务端请求并放行鉴权的功能
nacos.core.auth.enable.userAgentAuthWhite=false

### 配置自定义身份识别的key(不可为空)和value(不可为空)
nacos.core.auth.server.identity.key=nacos
nacos.core.auth.server.identity.value=nacos

注意:所有集群均需要配置相同的server.identity信息,否则可能导致服务端之间数据不一致或无法删除实例等问题。具体可以参考 https://nacos.io/zh-cn/docs/v2/guide/user/auth.html
然后重新启动nacos
image.png#465px #182px
登录nacos控制台,查看集群如下:
image.png#464px #108px
提示: 由于本地使用虚拟机部署,ip是10.0.2.15,这个是因为我的服务器网络使用了双网卡:桥接+HostOnly模式。

四、测试

本章节测试我们使用 《Spring-Cloud-Alibaba-Nacos注册中心》 中nacos作为注册中心的例子。
修改consumer、provider中注册中心地址

spring:
  cloud:
    nacos:
      server-addr: 192.168.33.11:8848,192.168.33.12:8848,192.168.33.13:8848

由于我们部署使用了最新版的nacos,为了适配,这里需要对项目中的Spring Boot和Spring Cloud Alibaba的版本做升级,具体如下:

|类型 |版本 |
|:--|
|Spring Boot Version |2.3.12.RELEASE |
|Spring Cloud Alibaba Version |2.2.10-RC1 |
提示:具体版本适配情况,可以参考 官网版本说明
编译成功,启动consumer、provider,可以看到已经注册到nacos
image.png#468px #173px
image.png#468px #114px
我们访问 http://127.0.0.1:8901/consume/hello/wno ,可以看到具体调用记录如下:
image.png#467px #62px

posted on 2026-08-10 15:27  爱河  阅读(1)  评论(0)    收藏  举报

导航