JavaWEB项目在没有硬件瓶颈的情况下怎么通过简单方法大大增加服务器的吞吐量

当SpringBoot项目用户增多导致性能下降时,可以通过集群启动多个服务实例缓解压力。在同一服务器上开启10个服务,每个指定不同端口,实现单机软集群。前端通过随机负载均衡算法将请求分散到各个后端,简化了部署并提高了服务稳定性。需要注意的是,数据库操作要避免脏数据,前端可以通过简单的算法实现负载均衡,但可能存在的问题是请求分配的不均匀。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 很久之前做了一个springboot的项目,突然发现用户多了之后服务吞吐性能急剧下降,于是想到了一个办法:

  • 通过集群的方法启动多个后端服务,减轻每个服务的压力。

  • 具体做法是在服务器上同时开启10个springboot项目,同一个jar包,用10个脚本打开,每次指定java -jar sb-snapshot-0.0.1.jar --server.port=9000,每次指定不一样的端口,这样以前一个请求只能处理10个请求,这样就能处理100个了。这样的集群称之为单机软集群。其有一个要求就是服务器硬件性能必须要好。

  • 其实简单来说,原理就是通过多线程提高服务器的请求处理能力,在同一个服务器上启动了10个服务,大大提高了服务的稳定性。这个时候虽然不像spring cloud等软件有服务治理系统,但是我们可以通过人工方式管理,服务器崩了只需要重新打开bat文件或者sh文件就行了,或者通过简单的脚本在服务器重启时运行脚本即可。与自动化管理相对比,由于人的大脑结构比电脑更加复杂,因此能够处理更为复杂的服务器故障,因此服务器故障处理的能力大大提升,此外人脑比大脑更加稳定,可以运行数十年而不会宕机。

  • 其中有一点非常重要需要注意的就是:数据库CRUD做好工作,读写的时候注意产生脏数据的问题。

  • 那么现在问题又来了,前端怎么处理呢?后台是集群,那么每次前端访问后台端口怎么指定?
    答案是我们可以通过一个简单的算法来做负载均衡,通过随机负载均衡算法,将用户请求均匀地分发在每一个后端服务上。随机负载均衡算法有一个缺点就是请求不是按照负载进行请求分发,可能导致随机性错分。但是同样随机负载均衡也有其好处,就是算法结构简单,不需要额外的配置和部署就能运行。

原理如下:
原理

负载均衡算法:

window.location.href="http://sb.sicau.edu.cn/900" + Math.floor(Math.random(0,1) * 9); 

随机负载均衡可以作为前端的一个模块直接嵌入网页中,也可以通过中间件的方式提供服务,部署非常灵活,同时因为代码比较简单,降低了部署的难度,同时提高了扩展性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值