常用的部署服务方式

常用的部署服务方式

基于Linux的 java -jar

优点:简单直观:直接在Linux系统上运行java -jar命令,操作简单,易于理解和实施资源利用率高:没有额外容器开销,直接运行在宿主机上,资源利用率较高灵活性高:可以根据需要进行各种定制化操作,如设置环境变量、调整JVM参数等

缺点:环境一致性差:不同开发环境之间可能存在差异,可能导致不同机器环境不同而运行不了。部署复杂:需要手动配置和依赖管理,容易出错。资源隔离差:多个应用运行在同一台物理机上,资源隔离不足,可能导致资源争用和性能问题可维护性差:手动部署和管理,缺乏自动化,维护成本高==终端关闭后进程终止==:默认情况下,如果终端关闭,进程会被终止。但可以以守护进程的方式运行

基于Docker的 docker run

优点:环境一致性:通过Dockerfile定义应用环境,确保开发、测试和生产环境的一致性可移植性强:容器化的应用可以在任何安装了Docker的环境中运行,提高了可移植性资源隔离:每个应用运行在独立的容器中,资源隔离,互不影响自动化部署:可以结合CICD实现自动化部署快速启动和扩展:容器启动快,可以水平扩展守护进程支持:Docker自身支持守护进程,容器在后台运行,不受终端关闭的影响

缺点:资源开销:容器运行需要额外的资源开销,尤其在多容器环境下复杂性:需要编写和维护Dockerfile个Docker Compose文件,有一定的学习曲线网络配置:容器之间的网络通信需要额外配置,增加了复杂性存储管理:需要管理容器的持久化存储,确保数据不丢失

基于Kubernetes的部署

优点:高可用性和自动伸缩性:Kubernetes提供自动扩容、缩容、负载均衡和故障恢复能力,确保了应用的高可用性和弹性环境一致性:通过配置文件定义应用的运行环境,确保一致性资源管理:Kubernetes提供强大的资源管理和调度能力,优化资源利用服务发现和负载均衡:内置的服务发现和负载均衡机制,简化微服务架构的管理自动化运维:支持自动化部署,滚动更新和回滚,提高运维效率守护进程支持:Kubernetes通过Pod和Deployment管理应用,确保应用始终运行在后台,不受终端关闭的影响

缺点:复杂性:Kubernetes学习和使用难度较高,需要一定的技术背景初始设置复杂:搭建和配置Kubernetes集群需要较多的时间和资源

如何在Linux 使用bash文件以守护进程运行java -jar?

我们已经知道,当我们使用java -jar来部署服务时,默认情况,如果我们的终端关闭,我们的进程会被终止。

那么怎么保证我们的进程在关闭终端时还能进行运行呢?那就使用如下命令

nohup java -jar -Dserver.port=9095 wms.jar > wms.log 2>&1 &

Shell

nohup:退出系统后继续运行指定的命令

wms.jar:jar包

-Dserver.port=9095:指定端口为9095

> wms.log:将标准输出重定向到 wms.log。

2>&1:将标准错误输出重定向到标准输出,从而也写入 wms.log。

末尾&:将命令放到后台运行。

ps -ef|grep java

Plain Text

用于查看java进程

相关文章

best365手机官方 国内外有哪些漏洞信息发布平台?
注册送365 如何找到word自动保存文件(电脑word保存的文件在哪里找到)
注册送365 生化危机6

生化危机6

🗓️ 07-04 👁️ 5078
365bet返水多少 芓字取名寓意与含义 芓字最佳组合搭配好听的名字
best365手机官方 拍摄《家有儿女》小区爆红,每平米5.5万“学区房”引数百人看房
注册送365 练字英雄钢笔哪个型号好(练字最值得拥有的一款英雄钢笔)