阿里云ECS使用体验--部署微服务项目
1. 使用背景
本人是计算机科学与技术专业大二学生,最近在做一个实验室管理系统项目。老师想让我们这个系统能够用起来,这是就需要服务器来支持了,所以就免费领取了阿里云的ECS进行使用。我的这个项目是一个SpringBoot的微服务项目,一共包含四个微服务,分别为api_gateway网关模块,oss阿里云存储模块,service_device设备模块,service_ucenter用户管理中心模块。除此之外,也使用了阿里巴巴的nacos注册中心,mysql数据库。
2.项目部署
- 首先,通过xshell远程连接到服务器
- 为服务器配置java环境
# 进入usr/local目录
cd /usr/local
# 通过Xshell从windows向linux传输文件, 输入rz,选择要传输的文件等待传输完成
# 安装java环境,这里的安装包为jdk-8u281-linux-x64.tar.gz,解压安装包
tar -zxvf jdk-8u281-linux-x64.tar.gz
# 删除安装包
rm jdk-8u281-linux-x64.tar.gz
# 修改环境变量
vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_281
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
# 使配置文件立即生效
source /etc/profile
# 测试java是否安装成功,输出java版本即代表配置成功
java -version
- 配置maven环境
# 进入usr/local目录
cd /usr/local
# 上传maven安装包,这里是apache-maven-3.6.3-bin.tar
# 解压
tar -zxvf apache-maven-3.6.3-bin.tar.gz
# 删除安装包
rm apache-maven-3.6.3-bin.tar.gz
# 修改环境变量
vim /etc/profile
export MAVEN_HOME=/usr/local/apache-maven-3.6.3
export PATH=$PATH:$MAVEN_HOME/bin
# 使配置文件立即生效
source /etc/profile
# 测试maven是否成功
mvn -version
- 安装mysql
# 下载mysql安装包
wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm
# 安装软件源
rpm -Uvh mysql57-community-release-el7-10.noarch.rpm
# 安装mysql服务端
yum install -y mysql-community-server
# 启动mysql
service mysqld start
# 启动服务
systemctl start mysqld
systemctl start mysqld.service
# 检测mysql运行状态
service mysqld status
systemctl status mysqld.service
# 查看临时密码
grep 'temporary password' /var/log/mysqld.log
# 登录
mysql -u root -p
https://blog.csdn.net/qq_23077403/article/details/85093705
# 修改密码复杂度
set global validate_password_policy=0;
set global validate_password_length=1;
# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
- nacos
wget https://github.com/alibaba/nacos/releases/download/1.2.0/nacos-server-1.2.0.tar.gz
mv ./nacos-server-1.2.0.tar.gz /usr/local/
tar -zxvf ./nacos-server-1.2.0.tar.gz
application.properties中nacos.core.auth.enabled修改为true
#开启服务
[root@iZ0jl4zeeakpsmjy77xb38Z bin]# sh startup.sh -m standalone
#停止服务
[root@iZ0jl4zeeakpsmjy77xb38Z bin]# sh shutdown.sh
The nacosServer(8458) is running...
Send shutdown request to nacosServer(8458) OK
#查看状态
ps -ef | grep nacos
- 将打包好的项目jar包上传到服务器上面
其中运行jar包的几种方式如下:
- 方式一
java -jar service_device-0.0.1-SNAPSHOT.jar
特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出
那如何让窗口不锁定?
- 方式二
java -jar shareniu.jar &
&代表在后台运行。
特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。
继续改进,如何让窗口关闭时,程序仍然运行?
- 方式三,一般使用这种方式
nohup java -jar shareniu.jar &
nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件。
- 方式四
nohup java -jar shareniu.jar >/dev/null &
解释下 >temp.txt
command >out.file
command >out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。
可通过jobs命令查看后台运行任务
jobs
那么就会列出所有后台执行的作业,并且每个作业前面都有个编号。
如果想将某个作业调回前台控制,只需要 fg + 编号即可。
查看某端口占用的线程的pid
netstat -nlp |grep :9181
3、访问服务器资源
将本地用到后台接口的URL改为服务器ip+端口号,并在ECS控制台中找到安全组,并开放对应的网关端口号即可。
const BASE_URL = 'http://服务器ip:8222'