项目上云实战:如何把Java项目搬上云服务器?
1.中小型企业项目开发完成后应如何运行?
最近在后台私信中,很多小伙伴问询博主,中小企业项目开发完成后,是否在pc机上直接运行。答案是否定的,专业的软件开发企业都会选择linux服务器作为运行环境,企业服务器有两种:一种是实体机房,一种是云服务器。
2.传统机房和云服务器如何选择
如今使用云服务器企业的比例已经大大超过传统机房,理由如下:
- 机房成本过大,博主公司前些日为当地某政府机关搭建机房,花费需要近百万,一般企业难以接受成本。
- 施工难度高,需要优秀网络人才做个性化设计应对客户各类需求。
- 后期维护成本高,如果网络工程师完成的效果是以下样子,可以自行脑补后期如何维护。
- 软件运行的前提是网络安全,使用安全软件和聘请软件安全人员又是一大笔花费。
- 容灾能力较差,如果有自然、人为灾害造成数据丢失,后果无法估计。
现有环境下,只有少数政府、银行等极其保密的项目才需要选用传统机房。
3.如何选择云服务器
在各大厂商的云服务器产品中,博主推荐华为云服务器,对比其他云服务器有以下特点:
3.1 安全可靠服务好
华为云的机房安全等级达到了Tier4,安全上的专项研发占总体研发投入5%,通过了全球100+合规认证,为用户数据安全提供全程护航。同时,华为承诺不用技术手段非法获取客户数据、不强迫客户交换数据。并且华为云在300+城市有本地团队,提供7*24小时咨询,可深度定制解决方案。在云服务器使用过程中,华为云提供一系列的监控与运维功能,操作与监控更加便捷。
3.2 领先技术实力,更懂企业客户
华为云承袭华为30+年企业服务经验积淀,更懂企业需求,全面覆盖企业业务场景,并提供对应解决方案与最佳实践。同时华为云通过在研发上的持续高投入,掌握云计算根技术,可轻松应对企业业务安全、高并发、快速创新等业务挑战。并且华为云可以提供专属资源,满足特定行业数据物理隔离需求,资源独享,无需担心资源抢占,最低0.5ms稳定低时延,99.9999%业务高可用。
3.3 运维成本低
企业可以根据使用需求按需付费,无需固定资产投资。云服务器灵活弹性,资源可按照峰值建设利用,减少流量与资源的浪费。而且可以在云上随时使用最新的技术,按需使用,实施周期也大大缩短。
3.4 性能优越
接下来,将通过选择市面上针对中小型企业的云服务器产品:华为云HECS(云耀云服务器)和阿里云共享标准型S6实例(以下简称“ALS6”)进行一个对比测评,让我们来看看实际的表现如何。
测试过程,选择HECS和ALS6位于北京的机房,测试配置均为4C8G。具体配置如下:
3.4.1 处理器与内存性能
处理器表现上,经过连续五次跑分,我们取单核整型、单核浮点型、多核整型、多核浮点型四个跑分结果的平均值来对HECS和ALS6的处理器性能进行对比,结果如下:
通过测试我们看到HECS内存表现远好于ALS6,稳定性更高更可靠,内存性能表现更好。
3.4.2 网络性能
这里使用一台测试机和一台陪练机作为测试基础进行测试。首先进行ping时延测试,具体测试结果如下:
通过测试发现,HECS的ping测试时延更低一些,在0.1毫秒上下,HECS在服务器内网间时延上更有优势。
3.4.3 存储性能
存储规格选型上,选择了1000G的华为云超高IO云硬盘、阿里云SSD硬盘,分别挂载到HECS和ALS6上作为系统盘,并使用fio对其进行性能测试。测试结果如下:
通过测试数据可以看出,华为云超高IO云硬盘挂载到HECS后可以达到其宣称的指标规格,性能优于阿里云SSD硬盘,同时在稳定性方面也更胜一筹。
3.5 双11上云优惠多多
恰逢双11,华为云还推出了一系列网站和企业应用上云场景的组合优惠,从现在到11月30日,所有场景组合折上9折起,还能领取5000元礼券。企业用户还能领3年时长新购券,抢完即止。还有万元礼包、轮盘抽奖、服务支持、储值买赠、限时免单等福利,实在是网站和企业应用上云不能错过的一大良机。
4.手把手教你使用云服务器发布Java项目
当购买完云服务器后,需要熟练掌握部署的linux语法,下文总结了博主本司在华为云服务器的部署过程。
本次部署过程采用了最基础的发布方式,全文傻瓜式教程,按照命令输入即可,晋级可以自行查找docker,k8s等部署方式。
项目需要jdk,mysql,redis等传统依赖,安装完毕后即可运行项目。
注意:软件安装包建议使用网盘地址,官方地址过慢。
4.1 安装jdk
4.1.1 下载jdk8
直接上网盘链接:https://pan.baidu.com/s/1Ip6ILZ5eU90aqNryUqwFgw
提取码:8por
4.1.2 导入linux中
软件安装在usr/local中,可使用ssh工具直接传入。
4.1.3 解压
cd /usr/local
tar -zxvf jdk-8u231-linux-x64.tar.gz
4.1.4 环境变量配置
vi /etc/profile
按i键,切换成编辑模式。找到内容末尾,按图片输入下面一段话。在unset i的前面输入 。
export JAVA_HOME=/usr/local/jdk1.8.0_231
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
(!!!注意:JAVA_HOME的路径是你实际解压后的JDK的路径,千万别写错了)
按Esc退出编辑模式,输入:wq保存并退出。
4.1.5 环境变量生效
source /etc/profile
4.1.6 验证
java -version
显示版本号就是安装成功了。
4.1.7 jdk相关的其他命令
查看JDK版本:java -version
查看java执行路径:which java
查看JAVA_HOME路径:echo $JAVA_HOME
插看PATH内容:echo $PATH
4.2 安装mysql数据库
4.2.1 下载
直接上网盘链接:https://pan.baidu.com/s/1FNijjVILpp_96nbZrFQ-iQ
提取码:s59l
4.2.2 解压
新建一个文件夹,然后进入在其中解压。
tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
4.2.3 移动并重命名
mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql
4.2.4 创建mysql用户组和用户并修改权限
cd /usr/local/mysql
groupadd mysql
useradd -r -g mysql mysql
mkdir -p /data/mysql #创建目录
chown mysql:mysql -R /data/mysql #赋予权限
4.2.5 配置my.cnf
vim /etc/my.cnf
配置如下。
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
lower_case_table_names=1
4.2.6 初始化数据库
cd /usr/local/mysql/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
注意:一定要和系统的版本对上,32位下32位的安装包,否则报错。mysqld: mysqld: cannot execute binary file。
4.2.7 查看密码
cat /data/mysql/mysql.err
注意:包括最后的那个 . 而且mysql输入密码没有光标的,直接复制粘贴也可以。
4.2.8 启动mysql,并更改root 密码
先将mysql.server放置到/etc/init.d/mysql中。
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
启动服务。
service mysql start
ps -ef|grep mysql
停止服务。
service mysql stop
4.2.9 下面修改密码
先登入初始密码 ,上文中查看出来的那一串,直接复制就可以。
./mysql -u root -p
登陆成功。
4.2.10 更改密码
SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
4.2.11 更改配置,使用navicat连接
use mysql #访问mysql库
update user set host = '%' where user = 'root'; #使root能再任何host访问
FLUSH PRIVILEGES;
如果不希望每次都到bin目录下使用mysql命令则执行以下命令。
ln -s /usr/local/mysql/bin/mysql /usr/bin
4.3 安装redis
4.3.1下载
访问官网,下载即可,比较小,redis地址请访问:Redis官网。
注意:要先安装c/c++环境!!!
yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake
4.3.2 解压
解压安装包,会在目录下生成一个文件夹。
tar zxvf redis-5.0.0.tar.gz
4.3.3 编译
然后进入解压后的文件夹编译。
make
4.3.4 修改配置文件redis.conf
这里主要修改三个部分。需要把下面配置注释/修改。
bind 0.0.0.0 #将该行注释
daemonize yes #将后台运行设为yes
protected-mode yes #将安全模式设为yes
requirepass 123456 #设置密码
4.3.5 运行
cd src
./redis-server ../redis.conf
4.3.6 验证
查看是否启动。
ps axu | grep redis
4.3.7 停止
./redis-cli shutdown
4.4 启动jar包
在idea中执行mvn clean install,并将打成的jar包通过ssh传输进入服务器,执行nohup java-jar 包名即可。
4.5 如何发布前端项目
4.5.1 安装nginx
4.5.1.1 安装依赖
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
4.5.1.2 下载
nginx下载地址如下:直接下载即可。请选择较新的版本。
4.5.1.3 复制进入linux
下载nginx-1.14.2.tar.gz,移动到/usr/local/下。可以使用ssh工具直接复制。
4.5.1.4 解压
tar -zxvf nginx-1.14.2.tar.gz
4.5.1.5 编译
##进入nginx目录
cd nginx-1.14.2
配置。
./configure --prefix=/usr/local/nginx-1.21.4
编译安装。
make
make install
4.5.1.6 验证
测试是否安装成功
./sbin/nginx -t
出现异常
原因分析:nginx/目录下没有logs文件夹。
解决方法:
mkdir logs
chmod 777 logs
安装成功。
4.5.1.7 启动nginx
cd /usr/local/nginx/sbin
./nginx //启动nginx
启动成功
配置nginx开机自启动
vim /etc/rc.d/rc.local
4.5.2 打包
打包生成dist文件。
yarn run build
在nginx中新建jeecg-boot文件夹,将生成的dist文件夹放入。
4.5.3 修改配置文件
修改nginx配置文件如下,文件位置:/usr/local/nginx-1.14.2/conf/nginx.conf
server {
listen 80;
server_name 你的域名;
#后台服务配置,配置了这个location便可以通过http://域名/jeecg-boot/xxxx 访问
location ^~ /jeecg-boot {
proxy_pass http://127.0.0.1:8080/jeecg-boot/;
proxy_set_header Host 127.0.0.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#解决Router(mode: 'history')模式下,刷新路由地址不能找到页面的问题
location / {
root html;
index index.html index.htm;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.html?s=$1 last;
break;
}
}
}
4.5.4 验证
访问http://域名/jeecg-boot即可
由此可见,项目已发布成功。
5.总结
企业上云已经是软件行业发展的趋势,如东软等大型企业已完成由机房到云服务器的转变,而中小型企业也应该紧跟潮流,替换传统方式,全面拥抱云服务器,以减少开发成本,提高客户体验。对于我们来说,使用云服务器部署私活、个人站点也是一个不错的选择。而华为云服务器价格、品质、售后都极为优秀,大家赶紧趁着双11优惠入手一台操练起来吧。
更多推荐
所有评论(0)