iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux系统安装部署nacos集群:基于nacos2.0.3
  • 236
分享到

Linux系统安装部署nacos集群:基于nacos2.0.3

linux运维服务器 2023-08-31 09:08:33 236人浏览 八月长安
摘要

目录 前言 1.yum安装方式 2.docker安装方式 一、前置条件 1.操作系统或者虚拟机上安装jdk,版本>=8 2.下载好nacos2.0.3的压缩包 二、解压 三、部署  1.将 cluster.conf.example 文件复制

目录

前言

1.yum安装方式

2.docker安装方式

一、前置条件

1.操作系统或者虚拟机上安装jdk,版本>=8

2.下载好nacos2.0.3的压缩包

二、解压

三、部署

 1.将 cluster.conf.example 文件复制一份

 2.编辑 cluster.conf文件

3.注意事项

3.1.端口冲突问题

因为nacos2.0之后,nacos会占用四个端口,如果伪集群采用的端口是连号方式,会导致端口被占用。比如,我们端口采用8848/8849/8859,则会出现端口冲突问题。nacos2.0会占用的4个端口为:1.nacos端口:8848-nacos默认端口;2.raft协议端口:7848-raft port,即raft协议端口;3.grpc协议两个端口:9848-grpc协议端口(nacos端口+1000),9849-grpc协议端口(nacos+1001)

4.修改application.properties文件

5.可能遇到的问题

5.1.内存不足

5.2.修改伪集群的配置

6.导入nacos集群需要的库表

7.集群化配置

8.运行nacos

9.登陆nacos控制台

10.防火墙问题

总结


前言

SpringCloudAlibaba这个微服务组合框架中,Nacos是必不可少的一个组件。安装部署nacos渐渐地成了我们程序员的一个基本功,或者说是有没有真正使用过或运用过的一个参考的标志。

本篇文章是关于linux系统安装部署nacos集群的介绍,安装方式是采用安装包的方式,而yum安装方式和Docker安装方式,本篇文章不涉及。原因大致如下:

1.yum安装方式

这种方式更多的时候个人练习或者互联网公司或者公司网络没有做物理隔离的公司。

据我所知,银行、证券(包含期货、基金、外汇)等公司的网络都进行了物理隔离,而yum安装方式需要联网,这个时候就不适用了。

另外,安装包安装方式,更有利于个人了解熟悉nacos的项目结构。当然下载源码,结构更清晰。

2.docker安装方式

虽然这种方式更简单,但是同样需要联网。其次,很多公司,甚至可以说站多数的公司的项目并没有进行容器化,或者说采用云原生层面的架构。如果单看网上的介绍,貌似全世界的公司都已经是云原生了,其实不然,采用mvc、Linux系统的公司多的是,而且还是占大多数。这就好比,在知乎上,年收入人均百万,可惜那都是做梦,中国人的可支配收入才多少?

当然我们不是否定以上两种方式,只是对此做个说明而已,不喜勿喷。

下面我们开始我们今天的主题。

一、前置条件

安装部署nacos集群之前,需要一些前置条件。

1.操作系统或者虚拟机上安装jdk,版本>=8

2.下载好nacos2.0.3的压缩包

关于安装jdk教程,网上很多,这里给大家一篇我个人的文章:

Linux系统通过yum安装JDK

下载nacos安装包,可以从官网下载。

地址:https://github.com/alibaba/nacos/tags

找到nacos2.0.3的安装包下载即可。由于这个安装包的地址在国外,有时候会下载很慢,甚至是网页打不开,大家可以下载源码,然后通过Maven命令打包,打成jar包之后再进行安装。

记住,下载源码的时候同样需要选择好对应的版本。

源码地址:https://github.com/alibaba/nacos

这两个前置条件准备好之后,需要将下载好的nacos安装包上传到服务器上,上传的工具大家可以自行选择。至于上传的位置或者说是目录,这个看个人喜好吧,或者公司项目中的约定。我个人的下载到个人的home目录下面新建了一个software的目录,这里专门用来存放各种安装包。

到了这里,我们的前置条件,或者说准备工作就做好了。

二、解压

安装目录一般在 /usr/local 目录下,我们可以在此目录下新建一个目录nacos

mkdir nacos

 在安装包所在的目录,将安装包解压到这个目录下:

tar -zxvf nacos-server-2.0.3.tar.gz /usr/local/nacos

注意,通过这个命令解压之后,会在 /use/local/nacos 目录下又生成了一个nacos目录,如果你不喜欢这种方式,在上一步,可以不建这个nacos目录,直接解压到 /usr/local目录。这样,就会有一层的nacos目录了。我之所以这么做,是因为我将里面一层的nacos目录修改为了对应的nacos版本,为的是对不同版本的nacos做区分。

下图是nacos解压后的目录:

 至此,解压工作完毕。

三、部署

进入到nacos的conf目录,这是nacos的配置目录。

 1.将 cluster.conf.example 文件复制一份

cp cluster.conf.example cluster.conf

 2.编辑 cluster.conf文件

vim cluster.conf

 添加你将要部署nacos服务器的ip和端口:

3.注意事项

这里我们是在一台服务器上运行三台nacos服务实例,所以ip是一样的,但是端口是不一样的,这种部署方式我们称之为伪集群,也算是集群的一种。

3.1.端口冲突问题

如果是这种部署方式,切记,端口不能是连续的。什么意思呢?nacos默认端口是8848,如果我们部署三个nacos实例,端口号分别为:8847/8848/8849。如果是这样的话,在nacos2.0以上的版本是运行不起来的,为什么呢?因为这样会导致端口冲突。

为什么会端口冲突呢?因为:

因为nacos2.0之后,nacos会占用四个端口,如果伪集群采用的端口是连号方式,会导致端口被占用。比如,我们端口采用8848/8849/8859,则会出现端口冲突问题。nacos2.0会占用的4个端口为:
1.nacos端口:8848-nacos默认端口;
2.raft协议端口:7848-raft port,即raft协议端口;
3.grpc协议两个端口:9848-grpc协议端口(nacos端口+1000),9849-grpc协议端口(nacos+1001)

 如果是连号的,那么上一个端口号对应的grpc协议的端口之一(+1001)就会和下一个端口号对应的grpc协议(+1000)端口冲突。

解决办法:

不要连号,最简单的就是隔一个端口号用一个,比如8846/8848/8850。

我们这次就采用这种方式来部署,结果是成功的。

关于这个问题,还有一个类似的问题,nacos官网有对一个的issue:

同一台服务器, 启动nacos集群,出现端口占用问题,具体问题如下 (版本号 : 2.0.0-ALPHA.2) #4873

上面都说到了,不知道是哪个端口冲突了,这里我可以我个人的亲身经验与教训告诉大家,是raft协议端口已被占用了。也就是说如果我们配置了一个端口是8848,那么raft协议端口就是7848,是这个端口已被占用了,这是什么原因呢?

我不知道别人的具体情况,我这里遇到的都是nacos启动失败,修改了问题再启动就开始报端口冲突了。这个端口冲突就是raft协议端口已被占用,也就是主端口-1000的那个端口。因为我们的nacos实例刚开始运行时,raft协议占用的端口已经打开并被占用,nacos启动失败,这个端口不会被释放杀掉,所以导致再次启动的时候就已经被占用了。我们可以手动杀掉这个进程即可。

关于如何杀掉这个进行,可以参考:

Linux查看端口占用情况

4.修改application.properties文件

同样在conf目录copyapplication.properties.example文件

cp application.properties.example application.properties

编辑application.properties文件:

vim application.properties

配置nacos连接的数据库

注意看上图的db.user=root。默认的配置是db.user.0。

 其实,后面跟不跟.0都是一样的,因为我们只配置了一台数据库。最终我的8846是采用的默认方式,8848采用的是db.user=root的方式,结构都是可以正常运行的。

当然如果你配置了数据库的主备模式,也就是说有多台Mysql的话,这里可以配置多个,此时就需要分别指定了。

5.可能遇到的问题

到了这里可以说,基本的配置修改差不多了。但是也不尽然,具体有以下几种情况:

5.1.内存不足

如果虚拟机内存比较小的话,启动nacos实例的时候可能会出现内存不足或无法分配内存的情况,下面是我遇到的情况。当时是因为虚拟机内存占用过高,当时内存和交换内存全部100%。没办法我就把虚拟机重启了,然后就好了。

 如果你的nacos版本过低,可能会出现这种情况,就是nacos本身启动的内存过小。如果是nacos2.0.3版本的则不存在这种情况,我们看它的启动的内存配置:

less startup.sh

 看上面红框的配置,就是2.0.3版本的nacos的JVM配置。

5.2.修改伪集群的配置

关于这一点,和上面是一个道理,在2.0.3版本同样不需要修改。我们同样查看nacos的启动配置:

 如果不是这个版本,版本过低的话,伪集群部署方式可以修改配置,修改的方法,请参考文章:

linux搭建nacos集群部署

至此,conf目录下的配置修改完毕。

6.导入nacos集群需要的库表

但是整个流程并没有结束,需要将nacos集群模式需要的库表导入到我们上面在application.properties文件中配置的数据库中。

首先,我们创建一个nacos_config库;

其次,我们将conf目录下的nacos-mysql.sql文件下载到本地电脑,然后在mysql数据库中执行这个sql,这个SQL其实就是nacos集群需要的建表语句。

less nacos-mysql.sql

 下图是nacos表的其中一个:

 

 如果不方便下载到本地电脑的话,可以在服务器上执行该SQL。最终的库表如下:

至此conf目录的配置修改与创建完毕。

然后回到nacos的主目录,进入bin目录,如果需要可以编辑startup.sh文件,不需要的话就不用管。我们的nacos2.0.3版本不需要修改。

vim startup.sh

我们也可以看一下bin目录的文件:

 如果没记错的话,bin目录下只有上图的4个绿色的文件,其余的都是我nacos运行之后生成的,不过这个不重要了。上图4个绿色的文件,其实也就是运行脚本。其中以sh结尾的是linux环境的nacos启动和关闭的脚本,我们到时候运行startup.sh和shutdown.sh就可以启动和关闭nacos了。以cmd结尾的是windows系统的脚本。我们可以通过win + r输入cmd打开dos窗口。

至此,nacos的通用配置修改完毕。

7.集群化配置

因为我们是为了搭建nacos集群,因为我们是一台服务器上部署三台nacos实例,所以需要三个nacos配置,也就是说,需要将我们的解压后的nacos文件拷贝三份。如果是真实的集群,也就是一台服务器上部署一台nacos实例的话,则不需要这么操作了。

我们将nacos拷贝三份,同时将该文件名以对应的端口结尾:

cp -r nacos nacos-8846cp -r nacos nacos-8848cp -r nacos nacos-8850

 然后,分别进入到对应的nacos实例下的conf文件,修改application.properties文件的端口:

 分别将nacos8846/8848/8850的application.properties文件的端口修改对应好。

至此,我们的nacos的安装配置部署就好了。

8.运行nacos

我们分别运行三个文件的startup.sh文件,可以分别进入到对应目录运行,也可以在一个目录中通过指定路径来运行,可以采用以下命令运行nacos:

./startup.sh# 或者sh startup.sh

或者回到nacos的三个实例文件的上一层目录运行:

./nacos-8846/bin/startup.sh ./nacos-8846/bin/startup.sh ./nacos-8850/bin/startup.sh 

运行之后,我们可以打开上图中的红框提示的文件——需要另外开一个命令窗口来观察,当然不开也不影响,只是你需要来回切换目录不方便:

tail -f /usr/local/nacos/nacos-2.0.3/nacos-8848/logs/start.out

上面的命令是实时查看我们的启动日志的,如果你不方便也可以在nacos运行之后再查看:

less /usr/local/nacos/nacos-2.0.3/nacos-8848/logs/start.out

 

 上面的截图没有对应我们刚才运行的50端口,只是截图不一致而已。但是我们只需要看到提示成功的日志即可。

9.登陆nacos控制台

然后我们在浏览器打开对应的nacos的控制台地址:

http://192.168.247.128:8846/nacos/index.html

需要换成你自己的ip和端口。

 默认的账号和密码都是nacos,输入之后查看集群管理的节点列表:

 至此,我们的三台nacos服务实例已经全部部署成功,且访问nacos成功,也看到了集群管理里面的阶段列表,已经有了三台nacos实例,并一一成功部署。

10.防火墙问题

如果你的启动日志显示了成功,但是你通过浏览器打开nacos的控制台失败,那最大的可能就是你的服务器对应的端口的防火墙没有打开。

查询指定端口是否已经开放,返回yes/no。也有可能返回firewalld is not running,此时需要打开防火墙在开放端口。

firewall-cmd --query-port=8848/tcp

添加指定需要开放的端口:

firewall-cmd --add-port=8848/tcp --permanent

重载入添加的端口:

firewall-cmd --reload

 注意:

如果没有这一步,防火墙端口的打开是不生效的,亲测过!这个和修改/etc/profile文件之后是一样的,只不过是使它立即生效的方法不一样而已。

通过上图我们看到,刚开始8848是yes,8846和8850是no,打开防火墙之后全部是yes了,这个时候你的nacos应该就可以完全部署成功了!

总结

最后我们做一个总结:

必须安装jdk;

下载nacos-server-2.0.3.tar.gz压缩包;

上传压缩包;

解压压缩包;

修改conf目录的application.properties文件的数据库连接;

修改conf目录的cluster.conf的集群配置;

将修改好的文件复制三份(如果部署多个,可以是多份);

分别修改三个nacos的application.properties文件的端口;

分别运行三个nacos的bin目录的startup.sh文件;

分别打开浏览器输入http://192.168.247.128:8846/nacos/index.html访问nacos控制台;

打开防火墙。

(o゜▽゜)o☆[BINGo!]

与君共勉,砥砺前行,不负此生!

祝好运!

来源地址:https://blog.csdn.net/qq_42971035/article/details/127174591

--结束END--

本文标题: Linux系统安装部署nacos集群:基于nacos2.0.3

本文链接: https://www.lsjlt.com/news/385137.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux系统安装部署nacos集群:基于nacos2.0.3
    目录 前言 1.yum安装方式 2.docker安装方式 一、前置条件 1.操作系统或者虚拟机上安装jdk,版本>=8 2.下载好nacos2.0.3的压缩包 二、解压 三、部署  1.将 cluster.conf.example 文件复制...
    99+
    2023-08-31
    linux 运维 服务器
  • Linux系统如何部署zookeeper集群
    这篇文章给大家分享的是有关Linux系统如何部署zookeeper集群的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。zookeeper简介:Zookeeper是一个开源的分布式协调服务,Zookeeper的设计目...
    99+
    2023-06-28
  • Linux系统如何部署Hadoop集群
    这篇文章将为大家详细讲解有关Linux系统如何部署Hadoop集群,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Hadoop简介:Hadoop是Apache旗下的一个用java语言实现开源软件框架,是一个...
    99+
    2023-06-28
  • mesos 集群安装部署mesos-ma
    ###############################################################                                                        M...
    99+
    2023-01-31
    集群 mesos ma
  • ZooKeeper集群怎样安装和部署
    这篇文章主要为大家展示了“ZooKeeper集群怎样安装和部署”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ZooKeeper集群怎样安装和部署”这篇文章吧。0、ZooKeeper还可以用作其他...
    99+
    2023-06-04
  • 基于k8s如何部署Session模式Flink集群
    这篇文章主要介绍“基于k8s如何部署Session模式Flink集群”,在日常操作中,相信很多人在基于k8s如何部署Session模式Flink集群问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”基于k8s如何...
    99+
    2023-07-05
  • 基于Redis6.2.6版本部署Redis Cluster集群的问题
    目录1.Redis6.2.6简介以及环境规划2.二进制安装Redis程序2.1.二进制安装redis6.2.62.2.创建Reids Cluster集群目录3.配置Redis Clu...
    99+
    2024-04-02
  • 一文详解基于k8s部署Session模式Flink集群
    目录基于k8s部署Session模式Flink集群什么是Session模式Flink的filesystem基于k8s部署高可用Session模式Flink集群各组件版本号制作镜像配置...
    99+
    2023-03-15
    k8s部署Session模式Flink集群 k8s部署集群
  • Centos7安装部署Kubernetes(k8s)集群实现过程
    目录一.系统环境二.前言三.Kubernetes3.1 概述3.2 Kubernetes 组件3.2.1 控制平面组件3.2.2 Node组件四.安装部署Kubernetes集群4....
    99+
    2022-11-13
    Centos7安装部署Kubernetes Centos Kubernetes
  • linux系统上安装jdk和部署jar包
    目录 一、准备工作 1、测试java运行环境  2、配置java运行环境 二、Linux系统上部署jar包 1、启动jar包  2、终止进程 一、准备工作 本文所用系统版本为centos 7 1、测试java运行环境 部署jar包需要确保...
    99+
    2023-09-11
    linux 运维 服务器
  • Centos系统中怎么部署Codis集群服务
    本文小编为大家详细介绍“Centos系统中怎么部署Codis集群服务”,内容详细,步骤清晰,细节处理妥当,希望这篇“Centos系统中怎么部署Codis集群服务”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、C...
    99+
    2023-06-27
  • centos7系统部署k8s集群的示例分析
    centos7系统部署k8s集群的示例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1 版本、规划1.1 版本信息:名称版本号内核3.10.0-1160.e...
    99+
    2023-06-22
  • linux系统怎么安装hadoop真分布式集群
    这篇“linux系统怎么安装hadoop真分布式集群”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“linux系统怎么安装ha...
    99+
    2023-06-30
  • 基于Docker安装与部署Zabbix的案例
    小编给大家分享一下基于Docker安装与部署Zabbix的案例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!今天测试了一天的Zabbix-Docker,部署起来确...
    99+
    2023-06-07
  • 如何安装minikube,kubectl以及实现Kubernetes集群部署
    这篇文章给大家介绍如何安装minikube,kubectl以及实现Kubernetes集群部署,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。(1) 安装kubectlcurl -LO https://storage.g...
    99+
    2023-06-19
  • Linux系统中如何安装Cobbler自动化部署
    这篇文章将为大家详细讲解有关Linux系统中如何安装Cobbler自动化部署,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装...
    99+
    2023-06-27
  • PXEkickstart自动化部署系统安装
    目录准备环境第一步:安装DHCP服务第二步:安装tftp服务第三步:安装Apache网站服务第四步:编写ks文件第五步:创建客户机,测试安装准备环境 系统:centos7.4.170...
    99+
    2024-04-02
  • 基于Docker部署Tomcat集群、 Nginx负载均衡的问题小结
    目录写在前面一,Ngixn 镜像制作二,java Web(Tomcat)应用镜像构建三,运行容器 Nginx镜像写在前面 看完Dokcer相关的书籍,正好有个项目要这样搞,所以自己练...
    99+
    2024-04-02
  • greenplum安装部署-CentOS7.9下Greenplum6.19集群搭建详细过程
    前言 官方文档:VMware Tanzu™ Greenplum® 6.20 Documentation | Tanzu Greenplum Docs(可以参考) 一,安装说明 1.1环境说明 1、首先确定部署的环境,确定下服务器的端口,一般...
    99+
    2023-10-23
    linux centos 运维 数据库
  • 利用MySQL Shell安装部署MGR集群的详细过程
    目录1. 安装准备2. 利用MySQL Shell构建MGR集群3. MySQL Shell接管现存的MGR集群4. 小结参考资料、文档免责声明本文介绍如何利用MySQL Shell...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作