Nacos部署(二)Linux部署Nacos2.3.x集群环境

😊 @ 作者: 一恍过去
💖 @ 主页: https://blog.csdn.net/zhuocailing3390
🎊 @ 社区: Java技术栈交流
🎉 @ 主题: Nacos部署(二)Linux部署Nacos2.3.x集群环境
⏱️ @ 创作时间: 2024年03月23日

目录

  • 1、搭建单机环境
  • 2、配置集群
  • 3、启动、停止集群节点
  • 4、配置自启服务
  • 5、配置nginx映射
  • 6、SpringCloud连接集群

《Linux部署Nacos-2.3.x单机环境》
《Docker部署Nacos-2.3.x单机环境》
《Docker部署Nacos-2.3.x集群环境》

1、搭建单机环境

首先按照单机环境的流程成功,需要进行配置mysql环境配置application.properties配置startup.sh,参考《Linux部署Nacos-2.3.x单机环境》完成搭建的搭建并且成功运行。

2、配置集群

配置nacos集群,至少需要三个节点。

如果是在不同服务器上搭建:

  • 可以先在某一台上,完成单机环境的配置然后拷贝到其他服务器,再完成后续的集群配置
  • 直接在每台服务器上进行单机的环境部署,然后再完成后续的集群配置。

如果是在同服务器上搭建:

  • 在通过一个服务上部署集群,进行测试时,可以将完成单机环境的配置然后拷贝多份,比如分为:nacos1、nacos2、nacos3,并且修改不同的端口。

部署流程如下:

节点及端口分为:nacos1(8848、9848、9849)、nacos2(8858、9858、9859)、nacos3(8868、9868、9869)

  • 1、搭建单机环境:
    /opt/cloud/nacos-cluster(手动创建)目录下,部署一个nacos单机环境,并且修改nacos的名称为nacos1,保证nacos1搭建成功。

  • 2、复制文件
    将搭建好的nacos1复制为nacos2nacos3

  • 3、修改集群cluster.conf
    分别进入到nacos1、nacos2、nacos3的配置目录中,将cluster.conf.example 修改为 cluster.conf并且修改里面的配置。

    # 分别进入到nacos1、nacos2、nacos3的配置目录
    cd /opt/cloud/nacos-cluster/nacos1[nacos2/nacos3]/conf# 修改nacos1、nacos2、nacos3中的配置文件名称
    mv cluster.conf.example cluster.conf# 分别修改nacos1、nacos2、nacos3中cluster.conf的配置
    vim cluster.conf# nacos1、nacos2、nacos3配置内容均如下,每个nacos均要配置集群中的所有节点[至少3个]
    111.229.160.175:8848
    111.229.160.175:8858
    111.229.160.175:8868
    

    在这里插入图片描述

  • 4、修改application.properties
    分别进入到nacos1、nacos2、nacos3的配置目录中,修改application.properties配置中的端口。

    	# 分别进入到nacos1、nacos2、nacos3的配置目录cd /opt/cloud/nacos-cluster/nacos1[nacos2/nacos3]/conf# 分别修改nacos1、nacos2、nacos3中application.properties的配置vim application.properties# 端口依次修改为8848、8858、8868server.port=8848[8858/8868]# 集群模式下,使用的LVS的DR模式作的nacos的vip,这样三个节点上面都有这个vip以及这个节点自己的ip# 导致nacos把这个vip也当作一个节点了。# 修改nacos.inetutils.ip-address=为当前服务器的ipnacos.inetutils.ip-address=111.229.160.175
    

    在这里插入图片描述

  • 5、修改JVM内存
    集群环境下,JVM内存默认为2g,如果资源不足或者资源有余,可以进行JVM内存修改。

    # 分别进入到nacos1、nacos2、nacos3的bin目录
    cd /opt/cloud/nacos-cluster/nacos1[nacos2/nacos3]/bin# 分别修改nacos1、nacos2、nacos3中application.properties的配置
    vim startup.sh# 依次修改JVM,如下配置
    JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
    

    在这里插入图片描述

文档中进行了在本机如何配置集群环境,如果在不同服务器上配置集群环境,那么可以不需要修改端口的步骤,只进行cluster.conf文件配置即可。

3、启动、停止集群节点

操作命令:

# 以内部数据源方式启动,依次启动
sh startup.sh# 停止
sh shutdown.sh

成功启动任何一个节点:

启动日志:
在这里插入图片描述
登录测试:

通过:http://112.14.15.16:8848、8858、8868/nacos,成功访问nacos则表示搭建成功。
默认账户:nacos
默认密码:nacos,为了安全在第一次进入到nacos以后最好修改一次密码。
在这里插入图片描述
控制台节点信息:
在这里插入图片描述

成功启动所有节点:
在这里插入图片描述
集群搭建成功后,数据会进行同步;访问任意一个节点,都可以看到所有的服务列表、配置列表等数据

4、配置自启服务

自启服务需要手动配置JAVA_HOME路径路径,修改 /bin/startup.sh文件

查询jdk配置:

#1、查询jdk配置
echo $JAVA_HOME
# 2、结果
/usr/local/java/jdk1.8.0_131

修改为指定jdk:

# 修改配置
vim start.sh# 内容
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/local/java/jdk1.8.0_131

在这里插入图片描述

创建自启服务:

vim /usr/lib/systemd/system/nacos.service

加入内容:

[Unit]
Description=nacos
After=network.target[Service]
Type=forking
# 单节点方式启动,填写实际路径
# ExecStart=/opt/cloud/nacos/bin/startup.sh -m standalone
# 集群方式启动-外部数据源启动,填写实际路径
ExecStart=/opt/cloud/nacos/bin/startup.shExecStop=/opt/module/nacos/bin/shutdown.sh
PrivateTmp=true[Install]
WantedBy=multi-user.target

加入自启:

systemctl daemon-reload
systemctl enable nacos.service

操作命令:

# 启动
systemctl start  nacos# 停止
systemctl stop  nacos

5、配置nginx映射

由于是集群配置,存在多个服务端控制台,我们可以通过任意一个控制台看到所有节点信息,为了减少节点的访问量,想要访问不同的节点需要输入不同的ip:port

通过nginx做负载均衡,向外暴漏一个统一的地址,目的有两个:

  • 为了单个节点的减轻压力和方便操作
  • 在SpringCloud整合,server-addr配置一个统一的入口路径

ngxin配置内容如下:

  ........upstream nacos-proxy {server 111.229.160.175:8848 weight=1;server 111.229.160.175:8858 weight=1;server 111.229.160.175:8868 weight=1;}server {....location /nacos {proxy_pass         http://nacos-proxy;port_in_redirect   on;proxy_redirect     off;    proxy_set_header   Host             $host;  proxy_set_header   X-Real-IP        $remote_addr;proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;proxy_set_header   Upgrade $http_upgrade;proxy_set_header   Connection "upgrade";}....}

效果:
在这里插入图片描述

6、SpringCloud连接集群

spring:cloud:nacos:discovery: #连接nacos集群前,配置好nginx负载均衡,直接连接nginx的ip+port即可,80端口可以忽略server-addr: 162.14.115.18......

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Xshell连接虚拟机非常慢

问题: 打开虚拟机连接时发现过了几分钟依然卡着在,但是主机可以ping通虚拟机,虚拟机也可以ping通主机感觉很奇怪,查询后得知需要修改ssh设置 打开配置 vim /etc/ssh/sshd_config 修改配置 找到 UseDNS,去掉前面的#号…

React中 类组件 与 函数组件 的区别

类组件 与 函数组件 的区别 1. 类组件2. 函数组件HookuseStateuseEffectuseCallbackuseMemouseContextuseRef 3. 函数组件与类组件的区别3.1 表面差异3.2 最大不同原因 1. 类组件 在React中,类组件就是基于ES6语法,通过继承 React.component 得到的组件…

面试八股文之JAVA基础

JAVA基础 DNS、CDN?如何实现对象克隆?父子类静态代码块, 非静态代码块, 构造方法执行顺序?String s new String("abc") 创建了几个对象, 分别放到哪里?OSI网络模型七层?应用层协议?http协议和https协议区别?传输层协…

蓝桥杯小白月赛3.23

题目描述&#xff1a; AC代码&#xff1a; #include <iostream> #include<cstring> #include<algorithm>using namespace std;const int N 2e510; string str[N]; //写上&会速度更快一些 bool cmp(const string &s1,const string &s2) {//例…

苹果App Store上架工具介绍

文章目录 摘要引言正文1. Xcode2. [appuploder](https://www.applicationloader.net/)3. [克魔助手](https://keymob.com/) 4.[ipa guard](https://www.ipaguard.com/)总结参考资料 摘要 苹果App Store作为iOS应用程序的主要分发渠道&#xff0c;上架应用程序需要遵守规定和通…

华为数通方向HCIP-DataCom H12-821题库(多选题:201-220)

第201题 以下关于BGP中Orginator ID属性的描述,正确的是哪些项? A、Originator ID属于公认任意属性 B、当其他BGP Speaker接收到这条路由的时候,将比较收到的0nginator ID和本地的Router ID,如果两个ID相同BGP Speaker会忽略掉这条路由,不做处理 C、当一条路由第一次被RR…

输入与输出

输入(Scanner类) Scanner是java5的新特性&#xff0c;在java.util包里&#xff0c;可以完成用户输入。步骤&#xff1a; 导入java.util包&#xff1b;构造Scanner对象&#xff0c;参数为u标准输入流System.in&#xff1b;使用next()方法系列接收数据 nextBoolean()接收一个布…

后端基础篇- 社区 IDEA 手动 Maven 创建 SpringBoot 项目、Maven 安装与配置环境变量、IDEA 集成 Maven

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 Maven 安装与配置环境变量 1.1 下载并解压安装包 1.2 配置本地仓库 1.3 配置阿里云私服 1.4 配置环境变量 2.0 IDEA 集成 Maven 2.1 首先创建一个新项目 2.2 开始…

电商系列之满减

> 插&#xff1a;AI时代&#xff0c;程序员或多或少要了解些人工智能&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家…

【4月】组队打卡《山有木Python特征工程极简入门》

活动名称 CDA Club 第2期《山有木兮Python数据分析极简入门》组队打卡 活动介绍 本次打卡活动由CDA俱乐部旗下学术部主办。目的是通过数据分析科普内容&#xff0c;为数据分析爱好者提供学习和交流的机会。方便大家利用碎片化时间在线学习&#xff0c;以组队打卡的形式提升学…

一文读懂:什么是工单系统?市面上有哪些好用的工单系统?

什么是工单管理系统&#xff1f;工单系统如何帮助企业解决管理问题&#xff1f;市面上有哪些好用的工单管理系统&#xff1f;不同工单管理系统适用于什么企业&#xff1f;工单管理系统如何定价&#xff1f; 5000字长文&#xff0c;我写了整整一天&#xff01;梳理了大家对工单…

framebuffer

framebuffer 1.framebuffer的理解 概念&#xff1a;FrameBuffer&#xff0c;可以译作"帧缓冲"&#xff0c;有时简称为 fbdrv&#xff0c;这是一种独立于硬件的抽象图形设备&#xff0c;是Linux为显示设备提供的一个接口&#xff0c;把显存抽象后的一种设备&#xf…

GitHub学生认证

文件、证明之类的一定要用英文。 我先是用有道网页翻译把学信网的报告翻译成了英文&#xff0c;然后截图传上去&#xff0c; 给我这个答复 所以要先2FA认证、支付信息填好。 2FA认证&#xff1a;Github开启2FA双重验证 - 知乎 (zhihu.com) 支付信息&#xff1a;点击Setting…

【学习】软件测试行业 ,有哪些以就业为主的学习侧重点

今天给所有入行软测的同学们&#xff0c;帮大家梳理下以就业为主的学习侧重点&#xff0c;简单来说就是【这些都是重点&#xff0c;圈起来&#xff0c;要考的】&#xff0c;有需要的小伙伴可以往下看。 建议一&#xff1a;一定要学习一门编程语言&#xff0c;再开始使用自动化测…

LC 100.相同的树

100. 相同的树 给你两棵二叉树的根节点 p 和 q &#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 示例 1&#xff1a; 输入&#xff1a; p [1,2,3], q [1,2,3] 输出&#xff1…

PostgreSQL技术大讲堂 - 第48讲:PG高可用实现keepalived

PostgreSQL从小白到专家&#xff0c;是从入门逐渐能力提升的一个系列教程&#xff0c;内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容&#xff0c;希望对热爱PG、学习PG的同学们有帮助&#xff0c;欢迎持续关注CUUG PG技术大讲堂。 第48讲&#…

IPv6-基础概念

IPv6基础概念 IPv6技术特点&#xff1a;精简报文格式、实现自动配置和重新编制、支持层次化网络编制、支持端对端安全、更好的支持Qos、支持移动特性。 五元组&#xff1a;源地址&#xff0c;目的地址&#xff0c;源端口&#xff0c;目的端口&#xff0c;协议。 IPv6报头优势…

gitee 本地文件提交到仓库

一、准备工作 1.下载Git Bash Git Bash官网下载地址 http://www.git-scm.com/download/ 点此跳转 2.注册或登录gitee gitee官网地址 https://gitee.com/ 点此跳转 没有账号选择注册有账号的话直接登陆 3.在gitee中新建一个空的仓库 登陆成功后点进个人主页&#xff0c;点击…

美国免税州详细地址:可用于ChatGPT、MJ、POE、AppStore等订阅服务账单地址填写!

地址1zip_Codecountriesstatecitystreet199654USAAKWasilla2075 E Chickaloon Rd236110USAAL MontgomeryMontgomery372034USAARConway617 Watkins St486303USAAZPrescott330 S Cortez St592805USACAAnaheim505 S Zeyn St680232USACOLakewood1390 S Zephyr St706109USACTWether…

Pygame基础4-多阶段

4-多阶段 原理 本章是对第2章的延续。 我们希望为游戏添加多个阶段&#xff0c;比如开始界面、游戏界面、结束界面等。 为此&#xff0c;我们可以使用一个类来管理游戏的不同阶段。 我们创建了GameManager类&#xff0c;并通过self.status属性表示不同的阶段。 intro阶段…