项目上云实战:如何把Java项目搬上云服务器?

news2024/10/6 18:23:03

1.中小型企业项目开发完成后应如何运行?

最近在后台私信中,很多小伙伴问询博主,中小企业项目开发完成后,是否在pc机上直接运行。答案是否定的,专业的软件开发企业都会选择linux服务器作为运行环境,企业服务器有两种:一种是实体机房,一种是云服务器。

2.传统机房和云服务器如何选择

如今使用云服务器企业的比例已经大大超过传统机房,理由如下:

  1. 机房成本过大,博主公司前些日为当地某政府机关搭建机房,花费需要近百万,一般企业难以接受成本。
  2. 施工难度高,需要优秀网络人才做个性化设计应对客户各类需求。
  3. 后期维护成本高,如果网络工程师完成的效果是以下样子,可以自行脑补后期如何维护。在这里插入图片描述
  4. 软件运行的前提是网络安全,使用安全软件和聘请软件安全人员又是一大笔花费。
  5. 容灾能力较差,如果有自然、人为灾害造成数据丢失,后果无法估计。
    现有环境下,只有少数政府、银行等极其保密的项目才需要选用传统机房。

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优惠入手一台操练起来吧。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]java毕业设计学生档案管理系统论文

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

基于java+springboot+mybatis+vue+elementui的毕业生信息招聘平台

项目介绍 随着我国教育改革的重大发展,越来越多的人都有了机会接受高等教育,同时每个大学生在毕业的时候都面临着一个重要的问题,那就是如何进行就业和找工作的问题,为了能够帮助更多的大学生找到适合自己的工作,我们…

m基于matlab的DQPSK调制解调技术的仿真

目录 1.算法概述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法概述 4进制的DPSK通常记为DQPSK。DQPSK信号编码方式如下表: 表中 θk是相对于前一相邻码元的相位变化。共有A、B两种方式。B方式中相邻码元间总有相位改变,故有利于在…

卡尔曼滤波器

卡尔曼滤波器 参考资料:https://www.bilibili.com/video/BV12P411V7pc/?spm_id_from333.337.search-card.all.click&vd_source2f16c81b2e6b252c304116c646e6512c 卡尔曼滤波器是线性滤波器 在这里插入图片描述 状态预测公式: x^t−Ftx^t−1Btut\h…

个人信息保护法vs国家标准,37项标准为个人信息加道“安全锁”~(附整理文档及pdf下载)

如何防止个人敏感信息“过度采集”? 如何禁止“大数据杀熟”? 如何避免“个性化服务”泄露隐私? 2021年11月1日,《中华人民共和国个人信息保护法》生效施行,为我们在网上冲浪时守护个人隐私安全。《个人信息保护法》…

HTML静态网页作业html+css+javascript+jquery水果商城7页

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…

怎么把Epub转换成PDF格式?分享两种简单好用的转换方法

怎么把epub格式的文件转换成PDF文件格式呢?这两种文件格式大家在下载文件的时候可能会经常遇到,PDF文件格式自然不用多说,这是大家办公必备文件,但是epub格式的文件是一种电子书格式的文件,很多小伙伴用不习惯&#xf…

Linux基本指令(一)

文章目录Linux常用基本指令1. ls2. pwd3. cd4. touch5. tree6. mkdir7. rmdir8. rm9. man10. cp11. mv12. cat13. echo14. wc15. more16. less17. head18. tail19. date20. cal21. sort22. uniq23. find24. which25. whereis26. alias27. grep28. zip/unzip29. tar30. bc31. un…

MyBatisPlus入门学习笔记

目录 学习笔记 SQL文件 练习类 其他知识点 yaml配置文件 代码生成器 学习笔记 SQL文件 SQL SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0; -- ---------------------------- -- Table structure for user -- ---------------------------- DROP TABLE IF EXISTS u…

图/图的存储/图的遍历

图的概念&#xff1a;图的数据结构由两个集合构成&#xff0c;一个是顶点集V (vertex)&#xff0c;一个是边集E&#xff08;Edge&#xff09;&#xff1b;无向图一般记为G(V , E) &#xff1b;有向图记为 G<V&#xff0c; E> 有向图就是边的指向是有方向区分的&#xff…

CPT-PLGA/FITC/Bodipy/Biotin聚乳酸共聚物/荧光素/生物素/Bodipy系列染料修饰顺铂的制备

今天小编分享的知识是CPT-PLGA/FITC/Bodipy/Biotin聚乳酸共聚物/荧光素/生物素/Bodipy系列染料修饰顺铂&#xff0c;下面一起来看&#xff01; CPT-11-PLGA纳米粒制备研究&#xff1a; 将CPT-11负载于可生物降解的高分子聚合物聚乳酸-羟基乙酸共聚物(PLGA)中,制备成具有缓释性…

Hive 之拉链表

文章目录什么是拉链表&#xff1f;如何实现拉链&#xff1f;拉链表实现示例什么是拉链表&#xff1f; 一张存储历史数据的表&#xff0c;记录数据由 “生” 到 “死” 的过程&#xff0c;用于处理缓慢变化维。 好处是拉链表可以保存每条数据的所有历史记录&#xff0c;轨迹十…

Java高级之Git

Java高级之Git 第1章 Git简介 Git是一个免费的、开源的分布式版本控制系统&#xff0c;旨在快速高效地处理从小型到非常大的项目的所有内容。 Git易于学习&#xff0c;占用空间小&#xff0c;性能快如闪电。它超越了SCM工具&#xff0c;如Subversion&#xff0c;CVS&#xf…

10.0 SpringMVC源码分析之MVC 模型由来

0.MVC 模型由来 0.1 Model1 模型 Model1 模型是很早以前项目开发的一种常见模型&#xff0c;项目主要由 jsp 和 JavaBean 两部分组成。 它的优点是:结构简单&#xff0c;开发小型项目时效率高。 它的缺点也同样明显: 第一:JSP的职责兼顾于展示数据和处理数据(也就是干了控制…

m基于matlab的BTS天线设计,带GUI界面

目录 1.算法概述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法概述 内容&#xff1a; N个天线按等距分布在z轴上&#xff0c;第N个和第N-1的之间的天线的距离是一定的为d。 在上述有红色的一块&#xff0c;是计算Taylor 公式的&#xff0c;有一个疑问就…

【计算机毕业设计】23.网上商城购物系统+vue

一、系统截图&#xff08;需要演示视频可以私聊&#xff09; 摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;网上商城购物系统当然也不能排除在外。网上商城购物系统是…

Java不得不知道的八股文之哈希表

哈希表简介 在哈希表中进行添加&#xff0c;删除&#xff0c;查找等操作&#xff0c;性能十分之高&#xff0c;不考虑哈希冲突的情况下&#xff08;后面会探讨下哈希冲突的情况&#xff09;&#xff0c;仅需一次定位即可完成&#xff0c;时间复杂度为O(1)&#xff0c;接下来我…

如何回复SCI审稿人评审意见(response letter)

如何高效地回复审稿意见&#xff1f;&#xff08;上&#xff09; 如何高效地回复审稿意见&#xff1f;&#xff08;中&#xff09; 如何高效地回复审稿意见&#xff1f;&#xff08;下&#xff09; 如何高效回复审稿人意见&#xff08;附实例&#xff09; 如何高效的回复审稿人…

机器学习笔记之核方法(一)核方法介绍

机器学习笔记之核方法——核方法介绍引言回顾&#xff1a;支持向量机的对偶问题核方法思想介绍线性可分与线性不可分非线性带来高维转换对偶表示带来内积核函数核函数满足的条件(2022/11/23)引言 本节将介绍核方法以及核函数。 回顾&#xff1a;支持向量机的对偶问题 在支持…

Ubuntu sudo apt update 过程中遇到的报错解决

文章目录参考资料1. 前言2. 换源方式1. 方式1&#xff1a; 更换/etc/apt/sources.list文件里的源2. 方式2&#xff1a;在设置中software&updates(软件和更新)里进行换源3. 问题解决--移除失效的ppa参考资料 E: 仓库 “https://mirrors.aliyun.com/docker-ce/linux/ubuntu …