-
很久之前做了一个springboot的项目,突然发现用户多了之后服务吞吐性能急剧下降,于是想到了一个办法:
-
通过集群的方法启动多个后端服务,减轻每个服务的压力。
-
具体做法是在服务器上同时开启10个springboot项目,同一个jar包,用10个脚本打开,每次指定java -jar sb-snapshot-0.0.1.jar --server.port=9000,每次指定不一样的端口,这样以前一个请求只能处理10个请求,这样就能处理100个了。这样的集群称之为单机软集群。其有一个要求就是服务器硬件性能必须要好。
-
其实简单来说,原理就是通过多线程提高服务器的请求处理能力,在同一个服务器上启动了10个服务,大大提高了服务的稳定性。这个时候虽然不像spring cloud等软件有服务治理系统,但是我们可以通过人工方式管理,服务器崩了只需要重新打开bat文件或者sh文件就行了,或者通过简单的脚本在服务器重启时运行脚本即可。与自动化管理相对比,由于人的大脑结构比电脑更加复杂,因此能够处理更为复杂的服务器故障,因此服务器故障处理的能力大大提升,此外人脑比大脑更加稳定,可以运行数十年而不会宕机。
-
其中有一点非常重要需要注意的就是:数据库CRUD做好工作,读写的时候注意产生脏数据的问题。
-
那么现在问题又来了,前端怎么处理呢?后台是集群,那么每次前端访问后台端口怎么指定?
答案是我们可以通过一个简单的算法来做负载均衡,通过随机负载均衡算法,将用户请求均匀地分发在每一个后端服务上。随机负载均衡算法有一个缺点就是请求不是按照负载进行请求分发,可能导致随机性错分。但是同样随机负载均衡也有其好处,就是算法结构简单,不需要额外的配置和部署就能运行。
原理如下:
负载均衡算法:文章来源:https://www.toymoban.com/news/detail-506188.html
window.location.href="http://sb.sicau.edu.cn/900" + Math.floor(Math.random(0,1) * 9);
随机负载均衡可以作为前端的一个模块直接嵌入网页中,也可以通过中间件的方式提供服务,部署非常灵活,同时因为代码比较简单,降低了部署的难度,同时提高了扩展性。文章来源地址https://www.toymoban.com/news/detail-506188.html
到了这里,关于JavaWEB项目在没有硬件瓶颈的情况下怎么通过简单方法大大增加服务器的吞吐量的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!