• Nacos Linux单机简易部署


    一. 准备工作

    1. 下载Nacos
      1. 官网提供稳定版:https://github.com/alibaba/nacos/releases
      2. 可以选择源码自编译或二进制可执行文件压缩包(Windows下载.zip包;Linux和MacOS下载.tar.gz)
    2. JDK 1.8+
      1. JDK最低要求版本是1.8
      2. 官网:https://www.oracle.com/java/technologies/downloads/#java8
      3. 注意分清楚使用的处理器和操作系统位数。ARM 32/64用于ARM处理器;x86/x64用于x84处理器,其中i586是32位,x64是64位。Nacos只支持64位OS和JDK,注意安装版本。
      4. 建议不要下载.rpm,不好设置安装路径,还是.tar.gz方便。
    3. MySQL 5.*
      1. 因为Nacos启动需要配置数据源配置,而且目前只支持MySQL,所以启动之前一定要有一个MySQL。
      2. 详见:MySQL个人用户的安装配置详解[windows]Docker安装并配置MySQL5.7

    二. 安装Nacos

    1. JDK
      # 上传jdk.tar.gz,创建java目录
      mkdir -p /usr/java
      # 解压到java目录
      tar -xvf [路径/包名] -C /usr/java
      # 编辑环境变量
      nano /etc/profile
      # 末尾添加
      JAVA_HOME=/usr/java/jdk1.8.0_321
      CLASSPATH=$JAVA_HOME/lib/
      PATH=$PATH:$JAVA_HOME/bin
      export PATH JAVA_HOME CLASSPATH
      # 保存退出,刷新配置
      source /etc/profile
      
    2. Nacos
      # 上传Nacos.tar.gz,解压到软件路径
      tar -xvf [路径/包名] -C /usr/local
      
      从解压的路径中获取 nacos-mysql.sql 文件,在MySQL中创建一个数据库名为nacos,并执行.sql文件中的SQL语句。

    三. 配置并启动

    1. 配置MySQL
      # 切换到nacos的conf目录下
      cd [路径]/nacos/conf
      # 编辑application.properties.example
      nano application.properties.example
      # 去掉以下几行的注释并配置为正确的连接串
      ### If use MySQL as datasource:
      spring.datasource.platform=mysql
      ### Count of DB:
      db.num=1
      ### Connect URL of DB:
      db.url.0=jdbc:mysql://[ip]:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReco>
      db.user.0=[user]
      db.password.0=[password]
      # 保存并退出
      
    2. 启动Nacos
      # 切换到nacos/bin目录
      cd [路径]/nacos/bin
      # 单机模式启动
      sh startup.sh -m standalone
      
      执行启动命令后,会显示以下提示:
      nacos is starting with standalone
      nacos is starting,you can check the /usr/local/nacos/logs/start.out
      
      此时需要检查一下启动日志,是否成功启动
      tail -200f /usr/local/nacos/logs/start.out
      
      如果看到一个用字符拼成的Nacos,右侧还有版本、端口和控制台URL等信息,说明已经启动,等到看到这一行日志时,说明已经启动成功:INFO Nacos started successfully in stand alone mode. use external storage
    3. 访问Nacos
      Nacos的控制台地址一般在上方的日志中就已经打出来了,直接在浏览器中访问即可。
      http://[ip]:8848/nacos/index.html
      默认的用户名和密码都是:nacos
    4. 停止Nacos
      # 还是在nacos/bin目录下
      cd [路径]/nacos/bin
      # 执行停止命令
      sh shutdown.sh
      
      看到一下输出信息即为停机:
      The nacosServer([pid]) is running...
      Send shutdown request to nacosServer([pid]) OK
      
    5. 配置为Linux服务(这里不建议开机自启,因为可能连不上数据库)
      切换路径 cd /etc/systemd/system ,创建nacos服务配置文件 sudo nano nacos.service,写入以下配置。
      # 注:以下用[!]包裹的内容需要根据自身Linux配置情况手动修改
      [Unit]
      Description=nacos
      After=network.target
      
      [Service]
      Type=forking
      Environment="JAVA_HOME=[!JDK路径]"
      ExecStart=[!Nacos路径]/nacos/bin/startup.sh [!-m standalone]
      ExecReload=[!Nacos路径]/nacos/bin/shutdown.sh
      ExecStop=[!Nacos路径]/nacos/bin/shutdown.sh
      PrivateTmp=true
      
      [Install]
      WantedBy=multi-user.target
      
      保存并推出nano后,执行以下命令:
      # 重新加载服务
      systemctl daemon-reload
      # 启动服务
      systemctl start nacos.service
      # 检查服务状态
      systemctl status nacos.service
      
      看到 Active: active (running) 即启动成功。

    四. Q & A

    1. Q:启动Nacos时,不提示nacos is starting
      A:很有可能是没有配置JDK(和环境变量),或者是JDK版本、位数不对,检查且java -version成功且显示64-Bit才正确。
    2. Q:start.out日志中没有成功而是一大堆Data Source报错
      A:没有配置或配置错了MySQL数据库链接,检查一下nacos库中是否有足够的表(重新执行一遍.sql也是个办法)。
    3. Q:nacos启动成功了,但浏览器访问console控制台报无法访问
      A:肯定是Linux没有开放8848(tcp)端口,开放命令如下:
      # 防火墙一般是默认开启的,检查一下防火墙状态
      systemctl status firewalld
      # 查看防火墙规则列表
      firewall-cmd --zone=public --list-ports
      # 添加8848的tcp端口
      firewall-cmd --permanent --zone=public --add-port=8848/tcp
      # 刷新防火墙配置
      firewall-cmd --reload
      # 检查一下是否开启成功
      firewall-cmd --query-port=8848/tcp
      # 注意:不用的端口规则及时删除
      firewall-cmd --permanent --zone=public --remove-port=8848/tcp
      
    4. Q:Nacos会额外占用哪些端口?
      A:(不保证正确) 使用命令 ss -lntu 或者 lsof -i 进行前后对比得出:
      TCP:7848、8848、9848、9849
      UDP:随机占用2个5位数空闲端口
      
  • 相关阅读:
    限制容器对CPU的使用
    限制容器对内存的使用
    一张图搞懂容器所有操作
    TQ2440学习笔记——Linux上I2C驱动的两种实现方法(1)
    pr_debug、dev_dbg等动态调试三
    pr_debug、dev_dbg等动态调试二
    TQ2440平台上LCD驱动的移植
    Android如何通过shareduserid获取系统权限
    基于Android的串口聊天室 (基于tiny4412) 一
    Java中的泛型方法
  • 原文地址:https://www.cnblogs.com/NyanKoSenSei/p/15835415.html
Copyright © 2020-2023  润新知