好物优选点击查看详情 京东购买

暂无内容

在Ubuntu 22.04 上安装配置Nacos

Nacos基于Java开发,在部署Nacos前,需要先配置Java运行环境。本例采用Java 11和Nacos 2.1.1。
1.1 下载Java 11
Java下载链接:https://www.oracle.com/java/technologies/downloads/#java11。
1.2 下载Nacos
当前Nacos的版本为2.1.1,建议使用最新版本,下载地址:https://github.com/alibaba/nacos/releases/

将Java和Nacos文件下载到当前用户目录。

创建Java安装文件夹,并进入该文件夹,命令如下所示:

<span class="token function">mkdir</span> /usr/local/java <span class="token builtin class-name">cd</span> /usr/local/java
<span class="token function">mkdir</span> /usr/local/java <span class="token builtin class-name">cd</span> /usr/local/java 
mkdir /usr/local/java cd /usr/local/java

将jdk解压到/usr/local/java文件夹中:

<span class="token function">sudo</span> <span class="token function">tar</span> -zxvf ~/jdk-11.0.16.1_linux-x64_bin.tar.gz -C /usr/local/java/
<span class="token function">sudo</span> <span class="token function">tar</span> -zxvf ~/jdk-11.0.16.1_linux-x64_bin.tar.gz -C /usr/local/java/ 
sudo tar -zxvf ~/jdk-11.0.16.1_linux-x64_bin.tar.gz -C /usr/local/java/

打开环境配置文件:

<span class="token function">sudo</span> <span class="token function">nano</span> /etc/profile
<span class="token function">sudo</span> <span class="token function">nano</span> /etc/profile 
sudo nano /etc/profile

将Java配置信息写入profile文件,如下所示:

<span class="token assign-left variable">JAVA_HOME</span><span class="token operator">=</span>/usr/local/java/jdk-11.0.16.1 <span class="token builtin class-name">export</span> JAVA_HOME <span class="token assign-left variable"><span class="token environment constant">PATH</span></span><span class="token operator">=</span><span class="token variable">$JAVA_HOME</span>/bin:<span class="token environment constant">$PATH</span> <span class="token builtin class-name">export</span> <span class="token environment constant">PATH</span> <span class="token assign-left variable">CLASSPATH</span><span class="token operator">=</span>.:<span class="token variable">$JAVA_HOME</span>/lib/ <span class="token builtin class-name">export</span> CLASSPATH
<span class="token assign-left variable">JAVA_HOME</span><span class="token operator">=</span>/usr/local/java/jdk-11.0.16.1 <span class="token builtin class-name">export</span> JAVA_HOME <span class="token assign-left variable"><span class="token environment constant">PATH</span></span><span class="token operator">=</span><span class="token variable">$JAVA_HOME</span>/bin:<span class="token environment constant">$PATH</span> <span class="token builtin class-name">export</span> <span class="token environment constant">PATH</span> <span class="token assign-left variable">CLASSPATH</span><span class="token operator">=</span>.:<span class="token variable">$JAVA_HOME</span>/lib/ <span class="token builtin class-name">export</span> CLASSPATH 
JAVA_HOME=/usr/local/java/jdk-11.0.16.1 export JAVA_HOME PATH=$JAVA_HOME/bin:$PATH export PATH CLASSPATH=.:$JAVA_HOME/lib/ export CLASSPATH

关闭文件后,需要执行以下命令让配置生效:

<span class="token builtin class-name">source</span> /etc/profile
<span class="token builtin class-name">source</span> /etc/profile 
source /etc/profile

在终端中测试Java是否安装成功:

java --version java version <span class="token string">"11.0.16.1"</span> <span class="token number">2022</span>-08-18 LTS Java<span class="token punctuation">(</span>TM<span class="token punctuation">)</span> SE Runtime Environment <span class="token number">18.9</span> <span class="token punctuation">(</span>build <span class="token number">11.0</span>.16.1+1-LTS-1<span class="token punctuation">)</span> Java HotSpot<span class="token punctuation">(</span>TM<span class="token punctuation">)</span> <span class="token number">64</span>-Bit Server VM <span class="token number">18.9</span> <span class="token punctuation">(</span>build <span class="token number">11.0</span>.16.1+1-LTS-1, mixed mode<span class="token punctuation">)</span>
java --version  java version <span class="token string">"11.0.16.1"</span> <span class="token number">2022</span>-08-18 LTS Java<span class="token punctuation">(</span>TM<span class="token punctuation">)</span> SE Runtime Environment <span class="token number">18.9</span> <span class="token punctuation">(</span>build <span class="token number">11.0</span>.16.1+1-LTS-1<span class="token punctuation">)</span> Java HotSpot<span class="token punctuation">(</span>TM<span class="token punctuation">)</span> <span class="token number">64</span>-Bit Server VM <span class="token number">18.9</span> <span class="token punctuation">(</span>build <span class="token number">11.0</span>.16.1+1-LTS-1, mixed mode<span class="token punctuation">)</span> 
java --version java version "11.0.16.1" 2022-08-18 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.16.1+1-LTS-1) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.16.1+1-LTS-1, mixed mode)

创建nacos文件夹,并进入该文件夹:

<span class="token function">sudo</span> <span class="token function">mkdir</span> /usr/local/nacos <span class="token builtin class-name">cd</span> /usr/local/nacos
<span class="token function">sudo</span> <span class="token function">mkdir</span> /usr/local/nacos <span class="token builtin class-name">cd</span> /usr/local/nacos 
sudo mkdir /usr/local/nacos cd /usr/local/nacos

解压Nacos安装文件到该目录:

<span class="token function">sudo</span> <span class="token function">tar</span> -zxvf ~/nacos-server-2.1.1.tar.gz -C /usr/local/nacos <span class="token function">mv</span> nacos nacos-server-2.1.1 <span class="token builtin class-name">cd</span> nacos-server-2.1.1
<span class="token function">sudo</span> <span class="token function">tar</span> -zxvf ~/nacos-server-2.1.1.tar.gz -C /usr/local/nacos  <span class="token function">mv</span> nacos nacos-server-2.1.1 <span class="token builtin class-name">cd</span> nacos-server-2.1.1 
sudo tar -zxvf ~/nacos-server-2.1.1.tar.gz -C /usr/local/nacos mv nacos nacos-server-2.1.1 cd nacos-server-2.1.1

在启动Nacos时,会出现找不到JAVA_HOME的问题,需要手动帮Nacos配置JAVA_HOME信息,打开启动文件startup.sh:

<span class="token builtin class-name">cd</span> bin <span class="token function">sudo</span> <span class="token function">nano</span> startup.sh
<span class="token builtin class-name">cd</span> bin <span class="token function">sudo</span> <span class="token function">nano</span> startup.sh 
cd bin sudo nano startup.sh

在启动文件startup.sh中加入JAVA_HOME信息:

<span class="token builtin class-name">export</span> <span class="token assign-left variable">JAVA_HOME</span><span class="token operator">=</span>/usr/local/java/jdk-11.0.16.1
<span class="token builtin class-name">export</span> <span class="token assign-left variable">JAVA_HOME</span><span class="token operator">=</span>/usr/local/java/jdk-11.0.16.1 
export JAVA_HOME=/usr/local/java/jdk-11.0.16.1

现在,就可以启动Nacos,测试一下安装效果了,启动脚本如下:

<span class="token function">sudo</span> ./startup.sh -m standalone
 <span class="token function">sudo</span> ./startup.sh -m standalone 
sudo ./startup.sh -m standalone

Nacos启动后,在浏览器中打开http://ip:8848/nacos,可以看到Nacos的界面,输入初始用户名密码(nacos/nacos),即可登录Nacos。

在Nacos使用过程中,如果系统重启或系统出现不可知问题时,在终端手动启动的Nacos服务将关闭而不能提供服务。为保证Nacos持续有效,需要将Nacos配置为自启动服务。
首先,在/usr/local/nacos文件夹下创建nacos.service文件:

<span class="token function">sudo</span> <span class="token function">nano</span> /usr/local/nacos/nacos.service
<span class="token function">sudo</span> <span class="token function">nano</span> /usr/local/nacos/nacos.service 
sudo nano /usr/local/nacos/nacos.service

然后将服务信息输入到该文件中:

<span class="token punctuation">[</span>Unit<span class="token punctuation">]</span> <span class="token assign-left variable">Description</span><span class="token operator">=</span>nacos <span class="token assign-left variable">After</span><span class="token operator">=</span>network.target <span class="token punctuation">[</span>Service<span class="token punctuation">]</span> <span class="token assign-left variable">Type</span><span class="token operator">=</span>forking <span class="token assign-left variable">ExecStart</span><span class="token operator">=</span>/usr/local/nacos/nacos-server-2.1.1/bin/startup.sh -m standalone <span class="token assign-left variable">ExecReload</span><span class="token operator">=</span>/usr/local/nacos/nacos-server-2.1.1/bin/shutdown.sh <span class="token assign-left variable">ExecStop</span><span class="token operator">=</span>/usr/local/nacos/nacos-server-2.1.1/bin/shutdown.sh <span class="token assign-left variable">Restart</span><span class="token operator">=</span>always <span class="token assign-left variable">PrivateTmp</span><span class="token operator">=</span>true <span class="token punctuation">[</span>Install<span class="token punctuation">]</span> <span class="token assign-left variable">WantedBy</span><span class="token operator">=</span>multi-user.target <span class="token assign-left variable">Alias</span><span class="token operator">=</span>nacos.service
<span class="token punctuation">[</span>Unit<span class="token punctuation">]</span> <span class="token assign-left variable">Description</span><span class="token operator">=</span>nacos <span class="token assign-left variable">After</span><span class="token operator">=</span>network.target <span class="token punctuation">[</span>Service<span class="token punctuation">]</span> <span class="token assign-left variable">Type</span><span class="token operator">=</span>forking <span class="token assign-left variable">ExecStart</span><span class="token operator">=</span>/usr/local/nacos/nacos-server-2.1.1/bin/startup.sh -m standalone <span class="token assign-left variable">ExecReload</span><span class="token operator">=</span>/usr/local/nacos/nacos-server-2.1.1/bin/shutdown.sh <span class="token assign-left variable">ExecStop</span><span class="token operator">=</span>/usr/local/nacos/nacos-server-2.1.1/bin/shutdown.sh  <span class="token assign-left variable">Restart</span><span class="token operator">=</span>always <span class="token assign-left variable">PrivateTmp</span><span class="token operator">=</span>true <span class="token punctuation">[</span>Install<span class="token punctuation">]</span> <span class="token assign-left variable">WantedBy</span><span class="token operator">=</span>multi-user.target <span class="token assign-left variable">Alias</span><span class="token operator">=</span>nacos.service 
[Unit] Description=nacos After=network.target [Service] Type=forking ExecStart=/usr/local/nacos/nacos-server-2.1.1/bin/startup.sh -m standalone ExecReload=/usr/local/nacos/nacos-server-2.1.1/bin/shutdown.sh ExecStop=/usr/local/nacos/nacos-server-2.1.1/bin/shutdown.sh Restart=always PrivateTmp=true [Install] WantedBy=multi-user.target Alias=nacos.service

输入完成后,保存退出。接下来让服务生效:

<span class="token function">sudo</span> <span class="token function">ln</span> -s /usr/local/nacos/nacos.service /lib/systemd/system/nacos.service systemctl daemon-reload systemctl <span class="token builtin class-name">enable</span> nacos.service systemctl start nacos
 <span class="token function">sudo</span> <span class="token function">ln</span> -s /usr/local/nacos/nacos.service /lib/systemd/system/nacos.service  systemctl daemon-reload systemctl <span class="token builtin class-name">enable</span> nacos.service  systemctl start nacos 
sudo ln -s /usr/local/nacos/nacos.service /lib/systemd/system/nacos.service systemctl daemon-reload systemctl enable nacos.service systemctl start nacos

为测试效果,可以直接重启Ubuntu;当系统重启后,Nacos服务将自动启动。

在Nacos集群中,必须采用MySQL数据库存储配置Nacos信息,且只能使用MySQL(其他数据库会忽略)。

5.1 创建数据库

首先在MySQL中创建一个名称为nacos的schema:

<span class="token keyword">CREATE</span> <span class="token keyword">DATABASE</span> <span class="token identifier"><span class="token punctuation">`</span>nacos<span class="token punctuation">`</span></span> <span class="token keyword">DEFAULT</span> <span class="token keyword">CHARACTER</span> <span class="token keyword">SET</span> utf8mb4 <span class="token keyword">COLLATE</span> utf8mb4_unicode_ci<span class="token punctuation">;</span>
<span class="token keyword">CREATE</span> <span class="token keyword">DATABASE</span> <span class="token identifier"><span class="token punctuation">`</span>nacos<span class="token punctuation">`</span></span> <span class="token keyword">DEFAULT</span> <span class="token keyword">CHARACTER</span> <span class="token keyword">SET</span> utf8mb4 <span class="token keyword">COLLATE</span> utf8mb4_unicode_ci<span class="token punctuation">;</span> 
CREATE DATABASE `nacos` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

然后创建用于访问nacos数据库schema的用户并授权:

<span class="token keyword">create</span> <span class="token keyword">user</span> <span class="token string">'nacos'</span><span class="token variable">@'%'</span> identified <span class="token keyword">by</span> <span class="token string">'your-passwd'</span><span class="token punctuation">;</span> <span class="token keyword">grant</span> <span class="token keyword">all</span> <span class="token keyword">privileges</span> <span class="token keyword">on</span> nacos<span class="token punctuation">.</span><span class="token operator">*</span> <span class="token keyword">to</span> <span class="token string">'nacos'</span><span class="token variable">@'%'</span> identified <span class="token keyword">by</span> <span class="token string">'your-passwd'</span> <span class="token keyword">with</span> <span class="token keyword">grant</span> <span class="token keyword">option</span><span class="token punctuation">;</span> flush <span class="token keyword">privileges</span><span class="token punctuation">;</span>
 <span class="token keyword">create</span> <span class="token keyword">user</span> <span class="token string">'nacos'</span><span class="token variable">@'%'</span> identified <span class="token keyword">by</span> <span class="token string">'your-passwd'</span><span class="token punctuation">;</span>  <span class="token keyword">grant</span> <span class="token keyword">all</span> <span class="token keyword">privileges</span> <span class="token keyword">on</span> nacos<span class="token punctuation">.</span><span class="token operator">*</span> <span class="token keyword">to</span> <span class="token string">'nacos'</span><span class="token variable">@'%'</span> identified <span class="token keyword">by</span> <span class="token string">'your-passwd'</span> <span class="token keyword">with</span> <span class="token keyword">grant</span> <span class="token keyword">option</span><span class="token punctuation">;</span> flush <span class="token keyword">privileges</span><span class="token punctuation">;</span> 
create user 'nacos'@'%' identified by 'your-passwd'; grant all privileges on nacos.* to 'nacos'@'%' identified by 'your-passwd' with grant option; flush privileges;

5.2 导入SQL语句

将nacos安装目录中conf文件夹下的nacos-mysql.sql导入数据库nacos中。

5.3 配置Nacos

打开Nacos配置文件:

修改一下内容

spring.datasource.platform<span class="token operator">=</span>mysql db.num<span class="token operator">=</span><span class="token number">1</span> db.url.0<span class="token operator">=</span>jdbc:mysql://IP:3306/nacos?characterEncoding<span class="token operator">=</span>utf8<span class="token operator">&</span><span class="token assign-left variable">connectTimeout</span><span class="token operator">=</span><span class="token number">1000</span><span class="token operator">&</span><span class="token assign-left variable">socketTimeout</span><span class="token operator">=</span><span class="token number">3000</span><span class="token operator">&</span><span class="token assign-left variable">autoReconnect</span><span class="token operator">=</span>true<span class="token operator">&</span><span class="token assign-left variable">useUnicode</span><span class="token operator">=</span>true<span class="token operator">&</span><span class="token assign-left variable">useSSL</span><span class="token operator">=</span>false<span class="token operator">&</span><span class="token assign-left variable">serverTimezone</span><span class="token operator">=</span>UTC db.user.0<span class="token operator">=</span>nacos db.password.0<span class="token operator">=</span>your-passwd
  spring.datasource.platform<span class="token operator">=</span>mysql  db.num<span class="token operator">=</span><span class="token number">1</span>   db.url.0<span class="token operator">=</span>jdbc:mysql://IP:3306/nacos?characterEncoding<span class="token operator">=</span>utf8<span class="token operator">&</span><span class="token assign-left variable">connectTimeout</span><span class="token operator">=</span><span class="token number">1000</span><span class="token operator">&</span><span class="token assign-left variable">socketTimeout</span><span class="token operator">=</span><span class="token number">3000</span><span class="token operator">&</span><span class="token assign-left variable">autoReconnect</span><span class="token operator">=</span>true<span class="token operator">&</span><span class="token assign-left variable">useUnicode</span><span class="token operator">=</span>true<span class="token operator">&</span><span class="token assign-left variable">useSSL</span><span class="token operator">=</span>false<span class="token operator">&</span><span class="token assign-left variable">serverTimezone</span><span class="token operator">=</span>UTC db.user.0<span class="token operator">=</span>nacos db.password.0<span class="token operator">=</span>your-passwd 
spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://IP:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user.0=nacos db.password.0=your-passwd

配置完成后,重启nacos服务即可。

原文链接:https://blog.csdn.net/houor/article/details/126683909

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享