Java 接口如何管理

2020-05-06 14:06:48 +08:00
 sandman511

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

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

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

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

这个跟语言没关系的.go 什么的一样要这样
MikeLei
2020-05-06 15:04:59 +08:00
@sandman511 里面有一个错别字是"重新打包 Jar 包,替换掉旧的 Jar 包",建议你采用 4 、5 楼的方法。
526326991
2020-05-07 13:06:32 +08:00
目测,SpringBoot 项目,Swagger2 了解下~
sandman511
2020-05-07 21:32:14 +08:00
@526326991 就是 springboot 呀 swagger 支持不同端口的接口接入嘛

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/668917

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX