千家信息网

Nacos集群如何搭建

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,小编给大家分享一下Nacos集群如何搭建,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、Nacos 简介Nacos(Na
千家信息网最后更新 2025年12月02日Nacos集群如何搭建

小编给大家分享一下Nacos集群如何搭建,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

一、Nacos 简介

Nacos(Naming and Configuration Service)致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

详情查看Nacos 官方文档[1]

二、Nacos 安装

1、Nacos 依赖

Nacos 基于 java 开发的,运行依赖于 java 环境。

依赖 64 bit JDK 1.8+,前往官网下载 JDK[2]

2、Nacos 安装

下载编译后压缩包,最新稳定版本[3]

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

三、Nacos 部署

1、单实例部署

单实例部署不适合生产环境,单点故障是致命的。

Linux 单实例非集群模式启动命令

startup.sh -m standalone

Linux 单实例非集群模式关闭命令

shutdown.sh

访问 nacos 管理页面,初始化用户名密码均为 nacos


2、集群部署

1、集群架构


  • 高可用 Nginx 集群

  • Nacos 集群(至少三个实例)

  • 高可用数据库集群(取代 Nacos 内嵌数据库)

2、本地虚拟机模拟集群部署

本地环境准备

在本地 PC 机上利用 VMware workstation 虚拟出如上表所示的几台机器,其中 Nginx 和 MySQL 都是采用的单实例,仅做练习使用。

搭建步骤

初始化 nacos 必须的数据库表并配置

找到 Nacos 安装目录下提供的数据库脚本文件


在 MySQL 实例创建 nacos_config 库并导入脚本


修改修改 Nacos 配置文件,指向 MySQL 实例,替换其内嵌数据库


#*************** 切换Nacos内嵌数据库平台为MySQL ***************# spring.datasource.platform=mysql  db.num=1 db.url.0=jdbc:mysql://192.168.15.141:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user=root db.password=123456

说明:三台 nacos 实例都需要切换 MySQL 平台,均需执行以上操作

nacos 集群配置

复制 cluster.conf 文件

Nacos 集群配置,修改 cluster.conf 文件

[root@localhost conf]# vim ./cluster.conf #it is ip #example 192.168.15.145 192.168.15.147 192.168.15.148

说明:三台 nacos 实例都需要做以上集群配置,至此关于 nacos 的配置结束了,可以尝试以集群模式启动三个 nacos 实例了

以集群模式分别启动三个 nacos 实例



尝试访问 nacos 管理页,测试三个实例是否正常


说明:如果三个实例以集群模式正常启动,那么分别访问三个实例的管理页就是展示以上登录页了。如果不能访问,则可能防火墙未开放 nacos 服务的端口,可执行如下命令。

[root@localhost bin]# firewall-cmd --add-port=8848/tcp --permanent success [root@localhost bin]# firewall-cmd --reload success [root@localhost bin]# firewall-cmd --list-all public (active)   target: default   icmp-block-inversion: no   interfaces: ens33   sources:   services: ssh dhcpv6-client   ports: 27017/tcp 8848/tcp   protocols:   masquerade: no   forward-ports:   source-ports:   icmp-blocks:   rich rules:  [root@localhost bin]#

Nginx 配置

  • Nginx 安装参考,Nginx 源码安装[4]

  • 修改 Nginx 配置文件 nginx.conf

worker_processes  1;  events {     worker_connections  1024; }  http {     include       mime.types;     default_type  application/octet-stream;      sendfile        on;      keepalive_timeout  65;      #nacos集群负载均衡     upstream nacos-cluster {         server 192.168.15.145:8848;         server 192.168.15.147:8848;         server 192.168.15.148:8848;     }      server {         listen       80;         server_name  192.168.15.146;          location / {             #root   html;             #index  index.html index.htm;             proxy_pass http://nacos-cluster;         }          error_page   500 502 503 504  /50x.html;         location = /50x.html {             root   html;         }     }  }

启动 Nginx

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

微服务配置

微服务父 pom 配置

       4.0.0      com.atguigu.springcloud     cloud2020     1.0-SNAPSHOT     pom                    cloud-alibaba-nacos-config-client-3377                         UTF-8         1.8         1.8         4.12         1.2.17         1.16.18         5.1.47         1.1.16         1.3.0                                                                    org.springframework.boot                 spring-boot                 2.2.2.RELEASE                 pom                 import                                                         org.springframework.cloud                 spring-cloud-dependencies                 Hoxton.SR1                 pom                 import                                                         com.alibaba.cloud                 spring-cloud-alibaba-dependencies                 2.1.0.RELEASE                 pom                 import                                                         mysql                 mysql-connector-java                 ${mysql.version}                                                         com.alibaba                 druid                 ${druid.version}                                                         org.mybatis.spring.boot                 mybatis-spring-boot-starter                 ${mybatis.spring.boot.version}                                                         junit                 junit                 ${junit.version}                                                         log4j                 log4j                 ${log4j.version}                                                         org.projectlombok                 lombok                 ${lombok.version}                                                                         org.springframework.boot                 spring-boot-maven-plugin                                      true                     true                                              

微服务 pom 依赖

               cloud2020         com.atguigu.springcloud         1.0-SNAPSHOT          4.0.0      cloud-alibaba-nacos-config-client-3377                                      com.alibaba.cloud             spring-cloud-starter-alibaba-nacos-config                                         com.alibaba.cloud             spring-cloud-starter-alibaba-nacos-discovery                                         org.springframework.boot             spring-boot-starter-web                                         org.springframework.boot             spring-boot-starter-actuator                                         org.springframework.boot             spring-boot-starter-test             test                                         org.springframework.boot             spring-boot-devtools             runtime             true                                         org.projectlombok             lombok             true               

微服务 bootstrap.yml 配置

server:   port: 3377  spring:   application:     name: nacos-config-client    cloud:     nacos:       discovery:         #server-addr: my.nacos.com:8848         #nacos集群配置(Nginx)         server-addr: 192.168.15.146:80       config:         #server-addr: my.nacos.com:8848         #nacos集群配置(Nginx)         server-addr: 192.168.15.146:80         #指定yaml格式的配置         file-extension: yaml         #指定分组         group: DEV_GROUP         #指定命名空间ID         namespace: my_nacos_namespace

微服务启动类配置

package com.atguigu.springcloud;  import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;  @SpringBootApplication @EnableDiscoveryClient public class NacosConfigClientMain3377 {      public static void main(String[] args) {         SpringApplication.run(NacosConfigClientMain3377.class, args);     }  }

微服务 Controller 读取 nacos 配置

package com.atguigu.springcloud.controller;  import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;  @RestController @Slf4j @RefreshScope //支持Nacos的动态刷新功能 public class ConfigClientController {      @Value("${config.info}")     private String configInfo;      @GetMapping("/config/info")     public String getConfigInfo() {         return configInfo;     } }

在 nacos 管理页上维护一个配置



本地启动微服务并访问


以上是"Nacos集群如何搭建"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

集群 配置 实例 服务 数据 三个 数据库 管理 文件 模式 命令 环境 篇文章 帮助 内容 动态 平台 脚本 三台 切换 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全与网络风险的利弊 柳州工务段软件开发 软件开发新品上市 数据库取消自动关闭 数据库的null和空字符串 数据库字段怎么调整 乐清市秋瑞软件开发有限公司 数据库计算机三级题库资源 嵌入式软件开发的出路 学c语言能做网络安全吗 庐江综合网络技术咨询介绍 软件开发最佳小团队 中航软件开发中心岗位 罗湖区网络技术转移郑重承诺 网络安全制度有制度的好处 马云建数据库 计算机网络技术最低工资 重庆全过程软件开发流程价目表 连接zmc数据库 维普数据库怎么看下载次数 生产服务器一般用什么系统 战地1服务器为什么ban孤儿车 国际上对网络安全 服务器构建家庭网络管理系统 魔兽世界刀片服务器还能修复么 集成服务器会计如何入账 公众号服务器怎么打开 数据库设置主键和外键关系 徐州建设智慧校园软件开发 网络安全护航数字经济
0