V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
sandman511
V2EX  ›  程序员

Java 接口如何管理

  •  
  •   sandman511 · 2020-05-06 14:06:48 +08:00 · 1659 次点击
    这是一个创建于 1692 天前的主题,其中的信息可能已经有所发展或是发生改变。

    某个系统有很多接口
    目前采用的方式是打包成 jar 到服务器上就 java -jar xxx.jar 运行 会弹出黑窗口
    如果多个接口一个 jar 那么如果对其中一个接口进行修改,或者说增加接口的话 更新过程中岂不是所有接口都不能调用了?
    请教一下各位 问题比较白痴 不是很懂这方面 谢谢回复

    10 条回复    2020-05-07 21:32:14 +08:00
    MikeLei
        1
    MikeLei  
       2020-05-06 14:15:11 +08:00
    觉得你的考虑有一点多余。
    你的项目应该是 SpringBoot,打包出的 Jar 包,是自带 Tomact 的,所以能够直接靠命令行启动(黑框框)。
    修改了代码以后(增加接口,修改接口)要重写打包 Jar 包,替换掉旧的 Jar 包,(这是导致你问题的原因)
    想解决的话你可以考虑搜索 "热部署"。
    MikeLei
        2
    MikeLei  
       2020-05-06 14:16:55 +08:00
    之所以说多余,如果项目对可靠性要求不是非常非常高的话。。。没有什么必要去花力气搞热部署。
    wysnylc
        3
    wysnylc  
       2020-05-06 14:18:28 +08:00
    服务器运行黑窗口,windows server?传统行业无疑(非鄙视)
    了解下 git,了解下 nginx,分布式这些东西把
    varrily
        4
    varrily  
       2020-05-06 14:21:14 +08:00
    很常见的问题,也有很简单的解决方案。

    前端加入 nginx,做负载均衡,后端部署两个 jar,更新的时候依次重启替换。

    接口太多就拆分到多个 jar 。
    wget
        5
    wget  
       2020-05-06 14:22:57 +08:00
    小项目的话一个工程就可以,如果需要更新不停服务,可以前置一个 nginx,如 nginx 端口 443,常规启动服务端口 8080,更新时候可以先 8081 端口启动一个服务,然后 nginx 转发到 8081 上,然后升级 8080 端口的服务,升级完成之后 nginx 转发改到 8080,停掉 8081 服务即可
    可以找一个会写命令行脚本的,将这一个流程写成一键脚本,后续升级把文件替换后执行下脚本就自动完成了
    sandman511
        6
    sandman511  
    OP
       2020-05-06 14:23:27 +08:00
    @MikeLei 对的 跟你说的一模一样 也就是说“重写打包 Jar 包,替换掉旧的 Jar 包"就可以了嘛?
    @wysnylc 是的 老系统了 用的 win
    zoharSoul
        7
    zoharSoul  
       2020-05-06 14:28:46 +08:00
    就像#4 说的那样
    前端加入 nginx,做负载均衡,后端部署两个 jar,更新的时候依次重启替换 就可以了.

    这个跟语言没关系的.go 什么的一样要这样
    MikeLei
        8
    MikeLei  
       2020-05-06 15:04:59 +08:00
    @sandman511 里面有一个错别字是"重新打包 Jar 包,替换掉旧的 Jar 包",建议你采用 4 、5 楼的方法。
    526326991
        9
    526326991  
       2020-05-07 13:06:32 +08:00
    目测,SpringBoot 项目,Swagger2 了解下~
    sandman511
        10
    sandman511  
    OP
       2020-05-07 21:32:14 +08:00
    @526326991 就是 springboot 呀 swagger 支持不同端口的接口接入嘛
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5522 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 08:38 · PVG 16:38 · LAX 00:38 · JFK 03:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.