【微服务-Nacos】手把手教你Nacos集群部署,不会的来找我!

前面我们介绍了Nacos单机部署和微服务接入Nacos注册中心的操作步骤,但单机部署是分布式应用的大忌,在分布式架构中,任何单点都可能成为系统的瓶颈。因此关于Nacos部署,通常都是采用集群部署来为系统带来高可用性。这里我们来介绍下Nacos的集群部署。

1、Nacos集群部署

(1)环境准备

Nacos因为选举算法的特殊性,要求最少三个节点才能组成一个有效的集群,这里对选举算法的介绍我们后面专门用一个篇幅来介绍。本篇就不再过多赘述,感兴趣的小伙伴可以关注一波,后续持续更新。

以下是Nacos采用Raft选举算法构成集群示意图:

所以,这里我们需要准备三台服务器(我这里就使用虚拟机来演示)。

在虚拟机工具中虚拟出三台centos节点,设置配置为1核2G。ip分别为:192.168.13.1;192.168.13.2;192.168.3.3;在此基础上,需要给每个节点都安装好jdk并设置JAVA_HOME变量。这些设置前面文章都写过了,不了解的可以翻上去看一下。

在3个节点之外,还需要额外部署一台mysql数据库用于保存Nacos的配置信息、权限控制等信息。我这里使用mysql5.7来部署。mysql的ip地址为106.14.221.171;

(2)下载Nacos安装包

前面已经提过了,需要的可以留言。

(3)配置数据库

使用任意工具连接到mysql数据库,创建一个名为:nacos_config的数据库,然后使用mysql客户端执行Nacos文件夹目录下conf文件夹里的nacos-mysql.sql文件,完成建表工作。


我们来看一下各表大致的用处:

  • config_* :所有 config_ 开头的表都是 Nacos 配置中心使用时保存应用配置的表。

  • users:系统用户表,在集群环境下用户信息保存在 users 表中,而非在配置文件中。

  • roles:系统角色表,Nacos 的权限基于 RBAC(基于角色的访问控制)模型设计,此表保存角色数据。

  • permissions: 系统权限表,说明角色与系统使用权限的对应关系。

(4)配置Nacos数据源

依次打开3台Nacos服务器中的配置文件application.properties文件,路径如下:


打开文件后,在文件中找到“count for DB”附近,这里我们可以看到数据源配置的都被注释掉了

我们可以删除掉注释,按下面的示例来配置数据源;

### Count of DB: 数据库总数

db.num=1

### Connect URL of DB: 数据库连接,根据你的实际情况调整

db.url.0=jdbc:mysql://106.14.221.171:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC

db.user=root

db.password=root

(5)Nacos集群节点配置

在Nacos安装文件夹下,有个集群示例文件cluster.conf.example


通过cluster.conf.example创建集群节点列表。

  • 首先利用复制命令创建cluster.conf文件。
cp cluster.conf.example cluster.conf

  • 打开cluster.conf文件,添加所有的Nacos集群节点IP及端口。
192.168.3.1:8848
192.168.3.2:8848
192.168.3.3:8848

Nacos通过cluster.conf了解集群节点的分布情况

(6)启动Nacos服务器

分别启动三个节点的Nacos服务。

sh /www/server/nacos/bin/startup.sh

当三个节点的Nacos服务都启动后,可以打开浏览器查看集群列表。


UP代表节点已就绪,DOWN代表节点已离线。目前所有节点都是就绪的。

(7)接入微服务

在我们开发好的微服务应用中,在application.properties文件中配置集群的任意节点都可以完成接入工作,Nacos内置的数据同步机制会保证各节点数据一致性。

# 应用名称,默认也是在微服务中注册的微服务 ID

spring.application.name=sample-service

# 配置 192.168.3.1/2/3 都可以接入 Nacos

spring.cloud.nacos.discovery.server-addr=192.168.163.131:8848,192.168.163.132:8848,192.168.163.133:8848

#连接 Nacos 服务器使用的用户名、密码,默认为 nacos

spring.cloud.nacos.discovery.username=nacos

spring.cloud.nacos.discvery.password=nacos

#微服务提供 Web 服务的端口号

server.port=8080

启动微服务后,我们可以看到Nacos管理页面上能看到注册上去的微服务了:


到这里,Nacos集群的主体配置工作就已经完成了。下篇文章我们再来聊一下集群的内部运行机制。

欢迎关注公众号:服务端技术精选。欢迎点赞、关注、转发

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/544937.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python大数据分析——一元与多元线性回归模型

Python大数据分析——一元与多元线性回归模型 相关分析概念示例 一元线性回归模型概念理论分析函数示例 多元线性回归模型概念理论分析示例 线性回归模型的假设检验模型的F检验理论分析示例 模型的T检验理论分析示例 相关分析 概念 a 正相关;b 负相关;c…

基于ollama搭建本地chatGPT

ollama帮助我们可以快速在本地运行一个大模型,再整合一个可视化页面就能构建一个chatGPT,可视化页面我选择了chat-ollama(因为它还能支持知识库,可玩性更高),如果只是为了聊天更推荐chatbox 部署步骤 下载…

【BMW】Bayerische Motoren Werke AG

文章目录 BMW 3系 X3X1、X2、奇瑞捷豹路虎、特斯拉ES200 vs BMW 325i M 运动曜夜Price历代宝马3系列 BMW 3系 X3 3 系参数 X1、X2、奇瑞捷豹路虎、特斯拉 ES200 vs BMW 325i M 运动曜夜 (右到左看) Price 2024.04.13 24年4月2,来自小…

【随笔】Git 基础篇 -- 远程与本地提交的差异 git clone(二十六)

💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大…

JVM—jps、jstat、jinfo、jmap、jstack的使用

JVM—jps、jstat、jinfo、jmap、jstack的使用 jps jps全称:Java Virtual Machine Process Status Tool 可以查看Java进程,相当于Linux下的ps命令,只不过它只列出Java进程。 jps:列出Jav程序ID和Main函数名称 jps -q:只输出进程ID jps -m …

故障诊断 | Matlab实现基于小波包结合卷积神经网络DWT-CNN实现电缆故障诊断算法

故障诊断 | Matlab实现基于小波包结合卷积神经网络DWT-CNN实现电缆故障诊断算法 目录 故障诊断 | Matlab实现基于小波包结合卷积神经网络DWT-CNN实现电缆故障诊断算法分类效果基本介绍程序设计参考资料 分类效果 基本介绍 1.Matlab实现基于小波包结合卷积神经网络DWT-CNN实现电…

在k8s 中部署有状态服务MongoDB高可用集群详解(附带镜像)

🐇明明跟你说过:个人主页 🏅个人专栏:《Kubernetes航线图:从船长到K8s掌舵者》 🏅 🔖行路有良友,便是天堂🔖 目录 一、前言 1、k8s简介 2、MongoDB介绍 3、为什么要…

精确号码比例放通算法的设计与实现

精确号码比例放通算法的设计与实现 引言背景问题定义算法设计1. 数据结构2. 算法流程3. 伪代码4. C语言实现 结论参考文献 引言 随着通信技术的飞速发展,呼叫中心和电信运营商面临着日益增长的呼叫管理需求。在某些情况下,为了确保服务质量或者遵守特定…

⭐Unity 里调用弹出电脑系统文件选择窗 (选择图片/文件)

今天遇到的需求要从Uinty里调用选择程序外的图片,类似手机环境下拿图库的照片一样。 效果如下: 话不多说 直接上代码! 1.编辑器模式下 using System.Collections; using System.Collections.Generic; using UnityEngine; using System.IO; using Syst…

[阅读笔记2][FLAN]FINETUNED LANGUAGE MODELS ARE ZERO-SHOT LEARNERS

接下来这篇是谷歌的FLAN,提出了指令微调这一新范式,在2022年发表。 这篇论文指出GPT3的zero-shot性能相比few-shot性能差太多了。他们发现如果对预训练模型进行指令微调能使zero-shot性能显著提升,下面右图显示指令微调后zero-shot比GPT3 few…

[Spring Cloud] (3)gateway令牌token拦截器

文章目录 集成redisNacos配置增加 redis配置配置pomredis配置RedisConfigredis序列化工具FastJson2JsonRedisSerializer测试 令牌校验拦截器nacos配置拦截器代码微服务登录接口实现 最终效果-登录接口与数据接口 本文gateway与微服务已开源到gitee 杉极简/gateway网关阶段学习 …

ORA-00742 ORA-00312 恢复---惜分飞

有客户反馈,断电之后数据库启动报ORA-00742和ORA-00312,无法正常open 我们远程上去尝试open库结果也报同样错误 [oracleoldhis oradata]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Wed Apr 10 09:40:03 2024 Copyright (c) 1982, 2013, Oracle. A…

基于Springboot的汉服推广网站

基于SpringbootVue的汉服推广网站设计与实现 开发语言:Java数据库:MySQL技术:SpringbootMybatis工具:IDEA、Maven、Navicat 系统展示 用户登录页 首页 图文动态区 视频动态区 近期活动 汉服交流 汉服知识 后台登录页 后台首页…

基于SpringBoot的“汉服文化平台网站”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“汉服文化平台网站”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 系统功能界面图 用户登录、用…

海外代理IP是什么,如何使用?

海外代理IP是一种网络工具,它允许用户通过位于海外的服务器来访问互联网。这种技术的主要作用是帮助用户突破地域限制,解锁全球视野,并保护用户的隐私和安全。 具体来说,海外代理IP的工作原理是:用户的请求首先被发送…

2024年全球可穿戴腕带设备市场将增长 7%,蓝牙BLE助力其发展

根据市场调查机构 Canalys 今日发布的最新报告,2023 年,全球可穿戴腕带设备市场实现 1.4% 的温和增长,出货量达 1.85 亿台。该机构预测 2024 年,全球可穿戴腕带市场将增长 7%。 Canalys 对 2024 年可穿戴腕带市场持谨慎乐观的态…

每日一题---OJ题: 旋转数组

片头 嗨! 小伙伴们,咱们又见面啦,今天我们一起来学习一道OJ题---旋转数组 emmm,看上去好像没有那么难,我们一起来分析分析 比如: 数组里面有7个元素,分别为 1, 2, 3, 4, 5, 6, 7 , 现在我们将数组中的元素向右轮转3个位置 第一次轮转:将最后一个元素"7"放在第一个…

HashMap与HashSet的不安全问题

HashSet的不安全问题 HashSet与ArrayList一样也存在不安全的问题&#xff0c;当多线程时也会出现ConcurrentModificationException&#xff0c;并发修改异常需要提出解决方案 问题 public static void main(String[] args) {Set<Integer> set new HashSet<>();…

基于 Operator 部署 Prometheus 监控 k8s 集群

目录 一、环境准备 1.1 选择版本 1.2 过滤镜像 1.3 修改 yaml 镜像 1.4 移动 *networkPolicy*.yaml 1.5 修改 service 文件 1.6 提前下载镜像并推送到私有镜像仓库 1.7 修改镜像&#xff08;可选&#xff09; 二、执行创建 三、查看 pod 状态 四、访问 prometheus、…

计算机毕业设计springboot小区物业报修管理系统m8x57

该物业报修管理系统实施的目的在于帮助物业管理企业升级员工管理、住户管理、报修问题管理等内部管理平台&#xff0c;整合物业管理企业物力和人力&#xff0c;全面服务于维修人员管理的内部管理需求,并重视需求驱动、管理创新、与业主交流等外部需求,通过物业管理企业各项资源…