Java 的服务,支撑高并发,是部署多个进程好,还是提高虚机配置调高最大线程数好。

2022-02-23 09:05:26 +08:00
 themostlazyman

有个疑问一直想不太明白,java api 服务是提高单虚拟的 cpu 核心数和内存大小,调高最大线程数。还是干脆用 tomcat 的默认配置,部署多台机器,用 nginx 负载均衡。感觉这个没有绝对的哪个好,只是在单个机器配置和负载的个数上。

4701 次点击
所在节点    Java
26 条回复
micean
2022-02-23 09:11:04 +08:00
先调查好瓶颈在哪
VeryZero
2022-02-23 09:16:27 +08:00
正常来说直接集群部署,简单暴力。

单实例调优各方面都需要付出时间精力,效果也不一定显著,可能调优测试完发现提升很小,白瞎。

调优一般在实例数量较多的情况下可以考虑,因为实例越多效益提升越大。

如果就一两台实例,就算提升 50%又有何意义?多加一个实例的钱付不起吗😂
lp7631010
2022-02-23 09:19:57 +08:00
@VeryZero 意义可大了。不是自己的钱不心疼
darkengine
2022-02-23 09:24:59 +08:00
@micean 对的,如果瓶颈在单体数据库,加再多机器也白搭。
bthulu
2022-02-23 09:35:21 +08:00
集群个屁, 累不累啊, 单机部署多爽, 并发不够加配置, 4 路 4CPU 服务器单颗 128 核总共 512 核 128T 内存, 还不够你高并发的, 你做的难道是微信消息服务?
learningman
2022-02-23 09:35:44 +08:00
单纯从操作系统的角度想,线程调度比进程调度代价低,而且内存的利用率也高一些
fanxasy
2022-02-23 09:39:23 +08:00
建议集群,不仅是提高并发,还能确保服务的可用
liprais
2022-02-23 09:44:04 +08:00
先做 profile 看看瓶颈在哪
盲猜在数据库
msg7086
2022-02-23 09:44:20 +08:00
总算力不是一样?
anonydmer
2022-02-23 10:21:15 +08:00
建议是采用集群部署,用多进程的方式,既能够满足生产环境中高可用的需求,也可以满足并发;而且根据你的需求,要达到的效果是满足峰值并发的情况,对付峰值并发有效的手段就是在短时间内自动通过伸缩机制进行更多实例的部署;如果不是峰值而是持续的高并发,那时候再进行应用内优化也不晚。
chezs66
2022-02-23 10:26:40 +08:00
从概念上说虚拟机本身也有可能发生故障,单纯提升线程数会让虚拟机本身成为系统的单点故障隐患。所以还是用集群吧
opengps
2022-02-23 11:18:16 +08:00
多进程优先(我是基于将来需要更大负载时候直接使用多机器负载均衡的场景角度给出的建议)
aitaii
2022-02-23 11:45:39 +08:00
数据落库吗?数据库性能也是一方面。
Oktfolio
2022-02-23 13:39:23 +08:00
我们一个 pod 给的内存都挺小的
wpyfawkes
2022-02-23 17:12:40 +08:00
@bthulu 128T 内存的机子真没见到过.是什么神仙配置?
cccssss
2022-02-23 17:31:27 +08:00
@wpyfawkes 我面试的时候有个哥们说他们公司 java 服务器就是 128T 内存,我估计一次 fullgc 能 stw 起码半小时吧……
x940727
2022-02-23 18:36:49 +08:00
@wpyfawkes 128TB 怕不是大型机了吧,128G 一根的 ECC 内存,都要插 1024 根,这特么 4 路的 CPU 通道也不够啊。
koloonps
2022-02-23 19:13:34 +08:00
@x940727 有可能是服务器虚拟化
zeni123
2022-02-23 19:31:09 +08:00
可以集群那就集群部署
还要考虑日后升级需要
Hanggi
2022-02-23 19:37:08 +08:00
无脑上 K8S 就好了,HPA 弹性扩展,一键部署,滚动更新,A/B test ,金丝雀部署,想怎么玩就怎么玩。

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

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

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

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

© 2021 V2EX