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

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

  •  1
     
  •   MXMF · 39 天前 · 2733 次点击
    这是一个创建于 39 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    我不反对用任何提升效率的工具,但是用了得懂,不能纯粹为了方便而用,出了问题都定位不到问题在哪
    cJ8SxGOWRH0LSelC
        6
    cJ8SxGOWRH0LSelC  
       39 天前
    @MXMF #5 这个只能去打日志, 在程序内去找 bug 呀, 和部署方式没啥关系吧。 而且是自己请求的 java 程序的 http 接口, 还是 nginx 反向代理的, 先确定卡在哪一层了。
    wangxin3
        7
    wangxin3  
       39 天前
    docker compose +1 ,如果是多机器要搭 docker 集群,各位是怎么弄得,我是用的 docker swarm
    seamonster
        8
    seamonster  
       39 天前
    docker compose + 1
    adoal
        9
    adoal  
       39 天前   ❤️ 4
    我尽量用(以及要求乙方的团队来我这里做项目实施时用)发行版打的 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  
       39 天前
    #9 文件未知 => 文件位置
    adoal
        11
    adoal  
       39 天前
    另外,当然,docker 可以在一定程度上掩盖这些混乱的问题,当然,也只是掩盖
    me1onsoda
        12
    me1onsoda  
       39 天前
    docker 真是省心省力
    huangmingyou
        13
    huangmingyou  
       39 天前
    @StinkyTofus 遇到问题,debug 就很头疼
    weenhall5
        14
    weenhall5  
       39 天前   ❤️ 1
    从手动到 docker 到 k8s 可视化部署,devops 的魅力
    superchijinpeng
        15
    superchijinpeng  
       39 天前
    k8s
    joyhub2140
        16
    joyhub2140  
       39 天前
    docker ,不过我们不打包到镜像,只作为运行容器,外挂 jar 包来执行。
    rlds
        17
    rlds  
       39 天前
    java 项目我们基本都是打包镜像丢 docker 或者 k8s 跑
    lyusantu
        18
    lyusantu  
       39 天前
    个人就随便用呗,我开发环境本机用的是是 PhpStudy 的 MySQL+Nginx ,虚拟机用的是宝塔面板

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