V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
MXMF
V2EX  ›  云计算

咨询以下各位都是怎么部署服务器环境( Java )的?

  •  1
     
  •   MXMF · 3 天前 · 2076 次点击

    之前部署 Java 环境的时候 我都是百度搜索按照网上步骤来操作的,先安装 Java ,安装 nginx ,如果需要的话再安装 Redis 和 MySQL ,都是通过 yum 命令。

    之前帮朋友搞过一个 PHP 项目,通过宝塔部署的环境,感觉还挺方便,宝塔里面看着也有部署 Java 环境的操作,但是因为用 yum 安装各个软件 感觉也不麻烦,自己部署的时候还是通过 yum 来操作的。

    前几天部署一个项目,一起做项目的后台部署的,今天有点问题,我上去想看 nginx 的日志和配置文件,一开始没找到,就问他怎么部署的,他说直接用的宝塔。

    所以就想问下各位,在拿到一个新的服务器的时候,需要部署 Java 环境,可能需要把 mysql 和 redis 也安装在服务器上,你们都是用什么办法操作的?

    31 条回复    2024-11-28 14:18:45 +08:00
    sheeta
        1
    sheeta  
       3 天前   ❤️ 3
    docker compose
    StinkyTofus
        2
    StinkyTofus  
       3 天前   ❤️ 1
    我喜欢用宝塔部署 java 项目, 非常方便, 看日志和管理都方便。 不过很多人看不起用服务器面版的, 就喜欢敲命令行的逼格。 我不喜欢浪费时间和记太多东西,越简单越好。
    klo424
        3
    klo424  
       3 天前
    docker compose + 1
    不过我是 dotnet ,哈哈
    dongisking
        4
    dongisking  
       3 天前
    一般都是结合 CICD 和 docker 或者 k8s
    MXMF
        5
    MXMF  
    OP
       3 天前
    @StinkyTofus
    我现在碰到一个问题,某一个接口偶发性的被挂起,然后到超时时间就提示接口超时了。我这边一直复现不了,客户那边基本上每天复现,就很尴尬;不知道你这边有没有碰到过类似的问题,或者给点解决思路

    最开始的时候怀疑是客户那边的网络问题,但是他们宽带办理的企业网,按理说是正常的,而且其他所有的接口都是正常的,就这一个接口出现这样的情况,就这个接口出现问题的时候,其他接口也都是正常的,接口返回时间都在 50ms 左右。

    最奇葩的一点是,我们测试环境部署的时候,给客户试用了一两个月,从来没出现这个问题,但是正式环境部署之后 立马出现这个问题了,目前两个服务器唯一的区别就是测试服务器是我手动安装的配置,正式服务器是同事使用宝塔安装的,我这边找日志找不到,他那边也找不到问题所在,客户每天必出现这个问题,然后就卡住了。

    我不反对用任何提升效率的工具,但是用了得懂,不能纯粹为了方便而用,出了问题都定位不到问题在哪
    StinkyTofus
        6
    StinkyTofus  
       3 天前
    @MXMF #5 这个只能去打日志, 在程序内去找 bug 呀, 和部署方式没啥关系吧。 而且是自己请求的 java 程序的 http 接口, 还是 nginx 反向代理的, 先确定卡在哪一层了。
    wangxin3
        7
    wangxin3  
       3 天前
    docker compose +1 ,如果是多机器要搭 docker 集群,各位是怎么弄得,我是用的 docker swarm
    seamonster
        8
    seamonster  
       3 天前
    docker compose + 1
    adoal
        9
    adoal  
       3 天前   ❤️ 3
    我尽量用(以及要求乙方的团队来我这里做项目实施时用)发行版打的 deb/rpm 包,或者开源软件的上游“原厂”打的 deb/rpm 包。因为这样的包在文件布局上符合 FSH ,这样我可以凭着经验找到自己需要的文件未知,不论我没用过的什么新软件,都不会给我制造 suprise ,增加心智成本。

    如果你见过在同一个项目同一台服务器上 /usr/local/software_name 、 /opt/vendor_name/software_name 、 /home/vendor_name/software_name 、 /srv/project_name/software_name 共存,并且 software_name 有的带版本号有的不带,而同一个 software 的 bin 、config 、logs 都在这个形式不可控的前缀路径下,而且更特么要死的是有的软件会好几个版本都装着,不话点心思根本不知道实际跑的是哪个,软件的启停要登录进去手工开,甚至 nohup 挂后台……然后交付的文档里并没有更新到跟实际情况一致时,你就会像我一样认为,FHS 大法好,FHS 大法妙,FHS 大法呱呱叫。
    adoal
        10
    adoal  
       3 天前
    #9 文件未知 => 文件位置
    adoal
        11
    adoal  
       3 天前
    另外,当然,docker 可以在一定程度上掩盖这些混乱的问题,当然,也只是掩盖
    me1onsoda
        12
    me1onsoda  
       3 天前
    docker 真是省心省力
    huangmingyou
        13
    huangmingyou  
       3 天前
    @StinkyTofus 遇到问题,debug 就很头疼
    weenhall5
        14
    weenhall5  
       3 天前   ❤️ 1
    从手动到 docker 到 k8s 可视化部署,devops 的魅力
    superchijinpeng
        15
    superchijinpeng  
       3 天前
    k8s
    joyhub2140
        16
    joyhub2140  
       3 天前
    docker ,不过我们不打包到镜像,只作为运行容器,外挂 jar 包来执行。
    rlds
        17
    rlds  
       3 天前
    java 项目我们基本都是打包镜像丢 docker 或者 k8s 跑
    lyusantu
        18
    lyusantu  
       3 天前
    个人就随便用呗,我开发环境本机用的是是 PhpStudy 的 MySQL+Nginx ,虚拟机用的是宝塔面板

    服务器上用的是 Docker Compose 部署 MySQL Redis Minio 等服务,Java 还是 jar 包部署的
    xubeiyou
        19
    xubeiyou  
       3 天前
    @lyusantu 麻烦问个问题 minio 我们之前权限设置为 public 然后直接 URL 可以下载,如果希望添加权限校验,只有登录了的才可以下载怎么处理?你们是怎么处理 minio URL 权限问题和安全问题的?
    alsas
        20
    alsas  
       3 天前
    docker 简单快速
    n43635
        21
    n43635  
       3 天前
    java 直接用 docker 就可以了,现在也都会在工程代码里放一个 dockerfile 方便打包,mysql 、redis 这类需要持久化的 linux 直接安装就好
    线上 java 一般也是放 docker 或者 k8s 里,数据库持久化直接买云服务的
    日志的话直接 docker logs 就能看了,也可以映射到本地 log 文件上,后期也可以用 grafana 、elk 做日志收集
    宝塔也确实好用的,但是时不时爆出安全漏洞有点难绷
    spritecn
        22
    spritecn  
       3 天前
    java -jar
    feitxue
        23
    feitxue  
       3 天前
    @adoal #9 多谢科普。
    PS 前面 FSH 后面 FHS ,看不懂是什么,问了 GPT ,问清楚了
    Filesystem Hierarchy Standard (文件系统层次结构标准)
    qiany
        24
    qiany  
       3 天前
    apt install mysql-server jdk
    kd9yYw2RyhQwAwzn
        25
    kd9yYw2RyhQwAwzn  
       2 天前
    docker/k8s
    shakeyo
        26
    shakeyo  
       2 天前
    @feitxue 这个标准说的不是操作系统吗?所以用户程序应该是怎么放才符合标准呢?
    配置/etc
    程序/usr/bin ?
    Nosub
        28
    Nosub  
       2 天前
    部署 Java 不需要 nginx ,打包成 jar 的包后,在服务器安装 Java 环境后,用命令行执行 jar 就可以了,Linux 加入后台运行的参数,Windows 平台可以不用管这些。
    weilai99
        29
    weilai99  
       2 天前
    @MXMF java 应用吗?内存 cpu 怎么样,满了?是否在 FULL gc 导致卡死了?
    weilai99
        30
    weilai99  
       2 天前
    @MXMF 打印下 gc 日志,看看有没有 full gc ,时间多少,或者写个 shell 监控,curl ,每秒请求下这个接口,啥时候超时了,就去看到底啥原因,大概率是在 full gc ,可以用 jstat 和 jmap 看下
    886600
        31
    886600  
       2 天前
    docker compose + 1
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   912 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 21:18 · PVG 05:18 · LAX 13:18 · JFK 16:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.