Nacos集群模式部署

这个快速开始手册是帮忙您快速在你的电脑上,下载安装并使用Nacos,部署生产使用的集群模式。

1. 预备环境准备

请确保是在环境中安装使用:

  1. 64 bit OS Linux/Unix/Mac,推荐使用Linux系统。
  2. 64 bit JDK 1.8+;下载.配置
  3. Maven 3.2.x+;下载.配置
  4. 3个或3个以上Nacos节点才能构成集群。

2. 下载安装包

下载编译后压缩包方式

下载地址

nacos-server-2.2.2.zip包 或者 nacos-server-2.2.2.tar.gz包

# 执行对应的解压命令
unzip nacos-server-2.2.2.zip 
tar -xvf nacos-server-2.2.2.tar.gz

也可以从 最新稳定版本 下载 nacos-server-$version.zip 包 或 nacos-server-$version.tar.gz

unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
cd nacos/bin

3. 修改nacos配置

3.1 初始化 MySQL 数据库

在Linux系统上执行SQL脚本,具体位置在nacos/conf/mysql-schema.sql中,也可以从sql语句源文件下载。

create database nacos_config;

use nacos_config;

3.2 配置application.properties

修改nacos/conf/application.properties
application.properties配置文件

3.2.1 修改端口

server.port=8848

3.2.2 修改DB

spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=123456

3.3 配置集群配置文件

cd nacos/conf
cp cluster.conf.example cluster.conf

#查看具体ip	
ip a 

配置nacos/conf/cluter.conf,每行配置成ip:port

# 格式: ip地址:端口号
192.168.16.101:8848
192.168.16.102:8848
192.168.16.103:8848

4. Nginx配置

  • nginx.conf
stream {
    upstream nacos-cluster{
        server  192.168.16.101:8848;
        server  192.168.16.102:8848;
        server  192.168.16.103:8848;
    }


    server {
        listen  81;
       
        location /nacos {
            proxy_pass http://nacos-cluster;
        }
    }
}

5. 启动服务器

Stand-alone mode
Linux/Unix/Mac

sh startup.sh -m standalone

集群模式

使用内置数据源
sh startup.sh -p embedded

  • 使用外置数据源
sh startup.sh

6. 代码配置

6.1 配置pom

<dependency>
   <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    <version>xxx</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

<!--alibaba nacos discovery-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>xxx</version>
</dependency>

<!--alibaba nacos config-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>xxx</version>
</dependency>
            
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
    <version>xxx</version>
</dependency>

6.2 bootstrap.yml

spring:
  application:
    name: nacos-test
  profiles:
    active: dev
  cloud:
    nacos:
      # nacos.core.auth.enabled=true 开启权限验证
      # server-addr: 127.0.0.1:8848
      # username: test
      # password: 123456
      discovery:
        # nacos地址
        # server-addr: 127.0.0.1:8848
        # 换成nginx的81端口,做集群
        server-addr: http://192.168.0.1:81
        # 命名空间
        namespace: dev1
        # 分组名称
        # group: DEFAULT_GROUP
      config:
        server-addr: 127.0.0.1:8848
        # username: nacos
        # password: nacos
        # 命名空间,可区分不同项目或环境
        namespace: dev1
        # data-id: ${prefix}-${spring.profiles.active}.${file-extension}
        # prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
        # 当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成${prefix}.${file-extension}
        # prefix: ${spring.application.name}
        # data-id后缀
        # file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型
        file-extension: yaml
        # 分组名称
        # group: DEFAULT_GROUP
        # encode: UTF-8
        # 修改后自动加载
        refresh-enabled: true
        # 允许nacos服务端向本地同步配置
        # enable-remote-sync-config: true
        # extension-configs:
        #   - data-id: common.yaml
        #     refresh: true

7. 关闭服务器

Linux/Unix/Mac

sh shutdown.sh

2023-05-05
1