Nacos 下载安装教程

文章目录

  • 事先准备
  • 下载并启动 Nacos
  • 设置 Nacos 开机自启动
  • 开放 Linux 外部访问权限
  • 访问 Nacos 管理界面
  • 附录

笔者的运行环境:

  • 安装成功过的 Nacos:

    • Nacos 2.2.3
  • 安装成功过的 Java:

    • Java 17.0.7
  • 安装成功过的 Linux:

    • RedHat Enterprise Linux 9 x86_64

    • CentOS 8 x86_64

事先准备

  1. 进行这个教程之前,必须要先安装好一个 Linux 操作系统。这个 Linux 操作系统可以安装在虚拟机中,也可以安装在真实的电脑中。关于这方面的内容,可见笔者的其它博客:

    各种操作系统安装教程大全:
    https://blog.csdn.net/wangpaiblog/article/details/115436520

    为了方便远程输入命令、将文件加入到 Linux 操作系统中,最好还要在一台 Windows 操作系统上面使用一种终端控制软件,如 Xshell、Xftp 等。关于这方面的内容,可见笔者的另一篇博客:

    如何在 Windows 主机上访问本地局域网中的 Linux 主机:
    https://blog.csdn.net/wangpaiblog/article/details/120052152

  2. Nacos 的运行环境需要 Java,因为 Nacos 本来就是基于 Java 编写的。关于 Linux 下 Java 的安装,请见笔者的另一篇博客:

    在 Linux 操作系统中安装 Java:
    https://blog.csdn.net/wangpaiblog/article/details/120093325

    现在,假设读者已经完成 Java 安装的完整过程。至少,需要配置 Java 的 JAVA_HOME 环境变量,以及安装不低于 Java 8 的 Java 版本。

下载并启动 Nacos

  1. 打开 Nacos 官网,找到 Nacos 免安装版的下载界面。如下面的图片所示。

    Nacos 的官网:https://nacos.io/zh-cn/index.html

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

    Nacos 2 的文档地址:https://nacos.io/zh-cn/docs/v2/quickstart/quick-start.html

    Nacos 版本对应表:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

    Nacos 下载处的最终网址:https://github.com/alibaba/nacos/releases/

    在这里插入图片描述

  2. 可以使用 Xshell 将前面下载的 tar.gz 包置入 Linux 操作系统中。注意,Nacos 是免安装的,所以需要注意 Nacos 的存放路径。假设已经将安装包置入当前目录,输入以下命令进行解压:

    tar -zxvf nacos-server-2.2.3.tar.gz

  3. 解压后会得到一个名为 nacos 的目录。此目录就是 Nacos 的安装目录,安装目录下至少会有一个 bin 目录。

    读者可以选择将 Nacos 的安装目录移动至某个固定的目录,这里移动后的 Nacos 安装目录以 /usr/local/nacos 为例,输入以下命令即可。

    mv nacos /usr/local/nacos

  4. 进入 Nacos 安装目录下的 bin 目录,使用如下命令以 单机模式 启动 Nacos。

    cd /usr/local/nacos

    sh startup.sh -m standalone

设置 Nacos 开机自启动

  1. 很遗憾,Nacos 官方没有像其它很多软件一样为开机自启动额外编写一个脚本,所以需要自己改写一个。

    Nacos 的启动等脚本同其它很多软件一样,在安装目录下的 bin 目录中。但是不能直接使用该脚本作为开机自启动脚本。原因是该启动脚本使用了 Java 的环境变量,但环境变量一般是在文件 /etc/profile 设置的。文件 /etc/profile 是在每一个用户登录 Shell 时才会读取的。在 Linux 启动之时此文件中的环境变量不会起作用。

    因此,需要将 Java 的环境变量也写进这个启动脚本中。

  2. 改写这个启动脚本需要知道 Java 的命令所在目录。输入如下命令即可。

    which java

    [root@192 bin]# which java
    /usr/bin/java
    
  3. 下面开始改写这个启动脚本,因为只有启动脚本中使用了 Java 的环境变量。

    输入以下命令将 Nacos 的启动脚本复制一个副本 startupbyos.sh

    cp -p startup.sh startupbyos.sh

  4. 打开此文件,在该脚本中第一个注释代码加入以下命令。此命令是为了添加前面获取到的 Java 的命令所在目录。

    JAVA_HOME=/usr/bin/java
    

    在这里插入图片描述

  5. 使用如下命令在目录 /etc/systemd/system 下创建一个关于 Nacos 的 .service 文件。

    touch /etc/systemd/system/nacos.service

  6. 编辑该文件,在其中写入如下内容。

    [Unit]
    Description=nacos-server
    After=network.target
    
    [Service]
    ExecStart=/usr/local/nacos/bin/startupbyos.sh -m standalone
    ExecStop=/usr/local/nacos/bin/shutdown.sh
    PrivateTmp=true
    Type=forking
    
    [Install]
    WantedBy=multi-user.target
    

    读者需要根据前面自己安装 Nacos 时各个文件的存放位置来分别修改 ExecStart、ExecReload、ExecStop 的值。

    其中,ExecStart 代表 Nacos 后台服务的启动命令。


    【踩坑提醒】

      前面已经提到过,Shell 中的环境变量会在此处无效,因此这里的命令必须使用全路径。

      如果想在 Linux 启动时使用环境变量,可以将此环境变量单独放入一个文件(不妨设为 /etc/systemd/system/nacosenv.conf)中,然后在本 .service 文件 /etc/systemd/system/nacos.service 中的 [Service] 部分使用 EnvironmentFile 属性导入这个环境变量配置文件。

    [Service]
    EnvironmentFile=/etc/systemd/system/nacosenv.conf
    

  7. Red Hat 内置了 SELinux(Security-Enhanced Linux)来保障 Linux 的安全,但这有可能会让目录 /etc/systemd/system 中的服务因权限不足无法启动,从而发生如下报错。

    [root@192 ~]# systemctl status nacos.service
    × nacos.service - nacos-server
         Loaded: loaded (/etc/systemd/system/nacos.service; enabled; preset: disabled)
         Active: failed (Result: exit-code) since Sat 202X-XX-XX XX:XX:XX CST; Xmin XXs ago
        Process: 979 ExecStart=/usr/local/nacos/bin/startupbyos.sh -m standalone (code=exited, status=203/EXEC)
            CPU: 4ms
    
    XX月 XX XX:XX:XX localhost systemd[1]: Starting nacos-server...
    XX月 XX XX:XX:XX localhost systemd[979]: nacos.service: Failed to locate executable /usr/local/nacos/bin/startupbyos.sh: Permission denied
    XX月 XX XX:XX:XX localhost systemd[979]: nacos.service: Failed at step EXEC spawning /usr/local/nacos/bin/startupbyos.sh: Permission denied
    XX月 XX XX:XX:XX localhost systemd[1]: nacos.service: Control process exited, code=exited, status=203/EXEC
    XX月 XX XX:XX:XX localhost systemd[1]: nacos.service: Failed with result 'exit-code'.
    XX月 XX XX:XX:XX localhost systemd[1]: Failed to start nacos-server.
    

    解决办法是修改文件 /etc/selinux/config,将其中的属性 enforcingenforcing 改为 disabled。然后重启 Linux。

    在这里插入图片描述

  8. 依次输出以下命令设置 Nacos 开机自启动:

    systemctl daemon-reload

    systemctl enable nacos.service

  9. 重启电脑试一下是否真正成功。输入以下命令重启电脑:

    reboot

    重启后,马上输入以下命令:

    netstat -na | grep 8848

    [root@192 ~]# netstat -na | grep 8848
    tcp6       0      0 :::8848                 :::*                    LISTEN  
    

    如果输出了端口 8848 被使用的信息,说明 Nacos 开机自启动成功。

开放 Linux 外部访问权限

  1. Linux 通常作为服务器操作系统,一般希望能使用远程操作 Nacos。不过,Linux 上有防火墙,默认会阻止远程对 Nacos 的连接。实际上,它会阻止所有的远程连接。对于笔者的 CentOS 8 x86_64,默认的防火墙为 firewalld,而不是 iptables。(很多早期的 Linux,使用的防火墙是 iptables,但 RedHat 从 RHEL 7 开始就用 firewalld 取代了 iptables。)

    • 一个偷懒的方法就是,永久地关闭防火墙。关闭的方法如下:

      systemctl stop firewalld

      systemctl mask firewalld

      firewall-cmd --reload

    • 另一个方法是,在防火墙中永久开放所属的 Nacos 各种端口。这里以 Nacos 管理界面默认的端口 8848 为例。开放的方法如下:

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

      firewall-cmd --reload

      单独开放完端口 8848 之后,可以输入以下命令查看是否生效:

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

      [root@localhost temp]# firewall-cmd --zone=public --query-port=8848/tcp
      yes
      

      实际上,也可以输入以下命令查看所有开放的端口:

      firewall-cmd --zone=public --list-ports

      [root@localhost temp]# firewall-cmd --zone=public --list-ports
      8848/tcp
      

访问 Nacos 管理界面

  1. 现在就可以尝试远程登录 Nacos 管理界面了。在浏览器中输入以下网址即可。

    http://Nacos 所在服务器的 IP:8848/nacos/index.html

    在这里插入图片描述

附录

  • Spring 官方文档及相关资料的网址集合:https://blog.csdn.net/wangpaiblog/article/details/131881448

  • Spring 官方脚手架:

    • Spring Boot/Cloud 脚手架:https://start.spring.io/

    • Spring Cloud Alibaba 脚手架:https://start.aliyun.com/

  • Spring Cloud Alibaba 相关网址:

    • 源码地址:https://github.com/alibaba/spring-cloud-alibaba

    • 版本对应表:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

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

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

相关文章

Windows 安装Tensorflow2.1、Pycharm开发环境

文章目录 1、安装anaconda2、安装Tensoflow2.1、创建虚拟环境2.2、安装Tensorflow依赖2.3、验证Tensorflow是否成功 3、配置pycharm环境4、错误记录 1、安装anaconda https://www.anaconda.com/download 打开命令行工具,出现base就表示安装成功了,表示当…

Vue2 第十一节 Vue的生命周期

1.生命周期的概念 2.生命周期流程图 3.生命周期分析 一.生命周期概念 生命周期又称为生命周期回调函数,生命周期函数,生命周期钩子是Vue在关键时刻帮我们调用的一些特殊名称的函数生命周期函数的名字不可更改,但函数的具体内容是程序员根…

如祺出行冲刺自动驾驶商业化,人少的地方机会多?

网约车,正在迎来让人“不明觉厉”的新一轮竞赛。 网约车监管信息交互系统的数据显示,截至今年6月30日,全国共有318家网约车平台公司取得网约车平台经营许可,环比增加5家;网约车监管信息交互系统6月份共收到订单信息7.…

【数据结构】二叉树、二叉搜索树、平衡二叉树、红黑树、B树、B+树

概述 二叉树(Binary Tree):每个节点最多有两个子节点(左子节点和右子节点),没有限制节点的顺序。特点是简单直观,易于实现,但查找效率较低。 二叉搜索树(Binary Search…

【网络基础进阶之路】设计网络划分的实战详解

PS:本要求基于华为的eNSP模拟软件进行 具体要求: 完成步骤: 1、对192.168.1.0/24进行子网划分 2、对每一个路由器进行IP的配置 3、开始静态路由的书写,在写之前,我们可以先对每一个路由器写一条通向右边的缺省路由&…

父类B为抽象类,继承接口A,子类C必须实现B和A中的抽象方法

1. 子类C必须实现A中的抽象方法。 2. 子类C必须实现B中的抽象方法 3 在1中,我们知道,C不显示实现A,依旧要实现A的所有方法。 然而代码设计中,C可能会依旧显示实现A,然后实现A的所有方法。(这样做的好处还…

本科专科毕业论文如何选题-附1000多论文题目-论文选题--【毕业论文】

文章目录 本系列校训毕设的技术铺垫论文选题选题目的和意义:选题举例参考文献 配套资源 本系列校训 互相伤害互相卷,玩命学习要你管,天生我才必有用,我命由我不由天! 毕业论文不怕难,毕业设计来铺垫&#…

【LeetCode】对称二叉树 平衡二叉树

对称二叉树 即先判断根节点的左右子树相不相同,相同时,再判断左孩子的左子树和右孩子的右子树比较,左孩子的右子树和右孩子的左子树(当两个都相同时才是对称的).....依次递推,过程中并设置一些不满足相同的…

Java生成二维码

使用google的开发工具包ZXing生成二维码 一、导入jar包 <!-- zxing生成二维码 --> <dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.3.3</version> </dependency><depen…

FFmpeg常见命令行(一):FFmpeg工具使用基础

前言 在Android音视频开发中&#xff0c;网上知识点过于零碎&#xff0c;自学起来难度非常大&#xff0c;不过音视频大牛Jhuster提出了《Android 音视频从入门到提高 - 任务列表》。本文是Android音视频任务列表的其中一个&#xff0c; 对应的要学习的内容是&#xff1a;FFmpe…

【分布式系统】聊聊系统监控

对于分布式系统来说&#xff0c;出现故障的是常有的事情&#xff0c;如何在短时间内找到故障的原因&#xff0c;排除故障是非常重要的&#xff0c;而监控系统是就像系统的眼睛可以通过分析相关数据&#xff0c;进一步管理和运维整个分布式系统。 监控系统的的基本功能包含 全…

C++初阶函数重载

目录 函数重载函数名修饰规则 函数重载 C语言不允许同名函数 CPP可以&#xff0c;但是要求构成函数重载 函数名相同&#xff0c;参数不同(参数类型、参数个数、参数类型的顺序)&#xff0c;返回值不同不能构成重载 int Add(int left, int right) {cout << "int Ad…

【机器学习】Gradient Descent for Logistic Regression

Gradient Descent for Logistic Regression 1. 数据集&#xff08;多变量&#xff09;2. 逻辑梯度下降3. 梯度下降的实现及代码描述3.1 计算梯度3.2 梯度下降 4. 数据集&#xff08;单变量&#xff09;附录 导入所需的库 import copy, math import numpy as np %matplotlib wi…

深入了解PostgreSQL:高级查询和性能优化技巧

在当今数据驱动的世界中&#xff0c;数据库的性能和查询优化变得尤为重要。 POSTGRESQL作为一种开源的关系型数据库管理系统&#xff0c;在处理大规模数据和复杂查询时表现出色。 但随着数据量和查询复杂性的增加&#xff0c;性能问题可能会显现出来。 本文将深入探讨POSTGR…

【蓝桥杯备考资料】如何进入国赛?

目录 写在前面注意事项数组、字符串处理BigInteger日期问题DFS 2013年真题Java B组世纪末的星期马虎的算式振兴中华黄金连分数有理数类&#xff08;填空题&#xff09;三部排序&#xff08;填空题&#xff09;错误票据幸运数字带分数连号区间数 2014年真题蓝桥杯Java B组03猜字…

App Cleaner Uninstaller for Mac 苹果电脑软件卸载工具

App Cleaner & Uninstaller 是一款非常有用的 Mac 应用程序清理和卸载工具。它可以彻底地清理系统中的应用程序、扩展和残留文件&#xff0c;以释放磁盘空间并优化系统性能。 此外&#xff0c;它还提供了磁盘空间监控和智能清理建议等功能&#xff0c;使用户可以轻松地管理…

GD32F103VE侵入事件

GD32F103VE的TAMPER引脚(PC13)&#xff0c;当PC13输入低电平时&#xff0c;会产生一个侵入检测事件。它会将所有“数据备份寄存器”内容清除。 这个功能有什么用&#xff1f; 一是防止被人开壳&#xff0c;抄袭。二是自毁功能。 直奔主题&#xff0c;多一句就是浪费时间。测试…

双环抱式“星环“座舱设计:比亚迪仰望U8内饰曝光,搭载骁龙8+车机

根据8月3日的消息&#xff0c;比亚迪车机先前使用的高通骁龙625芯片在网友中引发了一些批评&#xff0c;不过随着比亚迪将车机升级为骁龙665、骁龙690/695&#xff0c;这个问题得到了改善。 与此同时&#xff0c;大多数主流车企还在继续使用高通8155芯片&#xff08;相当于骁龙…

项目进度管理软件可以解决哪些难题?

项目进度管理是在项目实施过程中&#xff0c;对各阶段的进展程度和项目最终完成的期限所进行的管理。它以确保项目能在满足其时间约束条件的前提下实现其总体目标。 项目进度管理软件可以解决以下难题&#xff1a; 一、进度跟踪 如果没有完善的进度计划&#xff0c;项目很难…

mac切换jdk版本

查询mac已有版本 1、打开终端&#xff0c;输入&#xff1a; /usr/libexec/java_home -V注意&#xff1a;输入命令参数区分大小写(必须是-V) 2.目前本地装有两个版本的jdk xxxxedydeMacBook-Pro-9 ~ % /usr/libexec/java_home -V Matching Java Virtual Machines (2):20.0.1 (…