y18348897781 发表于 2021-3-30 16:26

求助一个java性能与应用的问题

如图所示,数据库连接池最大连接数是不是有点问题,还有超时时间,现在系统整个很卡,有时候会出现“已超出服务器最大并发请求”的提示,然后就需要重启服务器,重启了就好了,求大佬解惑

Ah.Dragon 发表于 2021-3-30 16:31

坐等大佬回复,顶一顶

Titanic 发表于 2021-3-30 16:37

可以通过以下方法,避免服务器的并发量超出服务器的承受范围:

一、应用优化

可以在网页上进行流量优化,使用压缩传输的功能,减少了流量的产生也提高了速度,同时动态页面静态化,可以减少不必要的图片和视频等需要占据和消耗大量空间的内容。

二、数据库优化

选择一个合理的数据库引擎,对其进行配置优化,能起到一个决定性的作用。使用存储过程来处理携带复杂数据逻辑的请求,同时对数据库的表进行降低数据量的处理,可以有效降低流量并发。

三、配置优化

增加资源、优化配置是是最简单粗暴的方法,可以增大带宽或对某些配置进行升级,或直接购买更高配置。如果请求量还是过大,可以提供多个服务器来实现任务分摊。

四、减少请求数量

避免重复的请求消耗不必要的资源;通过客户端自身的处理能力来响应请求,而不必到达服务端,这两方面可以有效避免由于请求量过于庞大而造成的超出服务器承受范围的问题。


原帖:https://zhuanlan.zhihu.com/p/197964246


建议将数据库部署在单独的服务器上,然后用监控工具去看原因出在哪里,是服务器性能问题,还是当前选型的数据库不能满足项目需求,还是说项目里的慢SQL比较多,需要对SQL进行优化。
还可能就是单机数据库无法承载项目用户量高峰期的高并发量,此时可以采用分布式集群,读写分离的方案。

y18348897781 发表于 2021-3-30 16:52

Titanic 发表于 2021-3-30 16:37
可以通过以下方法,避免服务器的并发量超出服务器的承受范围:

一、应用优化


这个项目是用的2011年的框架,由于是后来接手的,java都是用jdbc写的。所以很难优化,想请问一下是不是有什么其他的解决办法呢?

曾Jing最美 发表于 2021-3-30 16:58

尽量不要一次取太多数据,尽量使用存储过程

y18348897781 发表于 2021-3-30 17:01

曾Jing最美 发表于 2021-3-30 16:58
尽量不要一次取太多数据,尽量使用存储过程

大佬您说的使用存储过程是?

18337045351 发表于 2021-3-30 17:01

你这是线上的还是本地的?

小公主々 发表于 2021-3-30 17:22

该调优了:
1.细节上sql优化、数据库连接个数把控、策略配置、索引等等
2.宏观,增加节点、集成mq、反向代{过}{滤}理、读写分离
按着自己实际的业务情况分析,来选最优吧。

补充:先确定是不是数据库的问题,如果是服务器的问题,你可能需要多节点服务器,配个反向代{过}{滤}理等等。

y18348897781 发表于 2021-3-30 17:28

小公主々 发表于 2021-3-30 17:22
该调优了:
1.细节上sql优化、数据库连接个数把控、策略配置、索引等等
2.宏观,增加节点、集成mq、反 ...

好的,谢谢大佬,我挨个试试去

y18348897781 发表于 2021-3-30 17:29

18337045351 发表于 2021-3-30 17:01
你这是线上的还是本地的?

这是线上的
页: [1] 2
查看完整版本: 求助一个java性能与应用的问题