面试java高并发解决方案,java解决高并发面试题
如何解决写爬虫IP受阻的问题?立即使用。
高并发处理方法:
(学习视频分享:java教学视频)
1.从最基础的地方开始,优化我们写的代码,减少必要资源的浪费。
a、避免频繁使用新对象。对于整个应用程序,只需要存在该类的一个实例。我们可以使用单例模式。对于字符串连接操作,使用StringBuffer或StringBuilder,对于工具类,可以通过静态方法访问。
B.避免使用错误的方式,尽量不要使用instanceof进行条件判断。在java中使用高效的类,比如ArrayList,比Vector性能更好。
2.静态html
我们通过链接地址访问。通过这个链接地址,服务器相应的模块处理这个请求,到相应的jsp页面,最后生成我们想要的数据。但如果千万级的高并发请求太多,会增加服务器的压力,最坏的情况是关闭服务器。那么如何避免这种情况呢?如果我们把初始请求test.do的结果保存为html文件,然后用户每次访问这个html文件,这样就不需要再访问服务器了,服务器的压力不就减轻了吗?
如何自动生成静态页面?当用户访问它时,test.html将自动生成并显示给用户。
3.图片服务器的分离
对于web服务器来说,图片是最消耗资源的,所以我们有必要将图片从页面中分离出来,放在一个独立的图片服务器中。这种架构可以减轻提供页面访问请求的服务器系统的压力,保证系统不会因为图片的问题而崩溃。在图像服务器上,我们可以优化不同的配置。
4.贮藏
我接触过的具体缓存机制是hibernate的缓存机制。为了避免每次都从数据库中获取数据,我们把用户经常访问的数据放到内存中,甚至当缓存非常大的时候,我们也可以把内存中的缓存放到硬盘中。还有就是使用了先进的分布式缓存数据库,可以增加系统的抗压能力。
(更多相关面试问题推荐:java面试问答)
5.批量传输
做项目的时候,一次要传的参数太多,数据库规定一次最多传30000个参数,当时有50000条记录。它是如何传播的?最后是批量发货。如果这么多人一次挤不进电梯,它会报告超重bug,所以分批派人上来。
还有一次,在考试系统中,如果这么多考生同时向数据库提交,数据库的压力会增大,有时会宕机。当时采用的方法是ajax异步传输,不需要等待考生点击提交按钮就自动提交考生的答案,避免了突然断电时考生之前做的题丢失。
6.数据库集群
当面对复杂的应用和大量的用户访问时,一个数据无法快速满足需求,所以我们需要使用数据库集群或数据库表哈希。
我们在应用程序中安装业务和应用或功能模块来分离数据。不同的模块对应不同的数据库或表,然后按照一定的策略在更小的数据库中哈希一个页面或函数。
7.数据库优化
A.在设计数据库的时候,要考虑后期的维护。数据库的三种范式是我们在设计数据库时应该遵循的原则。
b、指数建立:指数建立要适当。如果一个表经常被用来查询,很少被用来添加和修改,我们可以为这个表建立一个索引,因为对于添加、修改和删除,我们对索引的维护会大大超过索引带来的效率。
c、表格字段的类型要选择得当。
包括字段的长度和类型等。应根据实际存储的数据来选择,长度不能太长,否则会影响效率。
d、外键要慎用,因为主键代表的是这个表,而外键代表的是一组表,它们是相互关联的,我们在删除或者修改的时候需要关联它们。
e、在数据库操作中
尽量用PrepareStatement,少用Statement,因为prepareStatement是预编译的。
连接设置为只读。Connection是对stacks的连接,是重量级的,我们可以用。
使用连接池,我们可以修改数据库中的默认连接数。
推荐:java入门教程以上是java面试3354高并发处理的细节。请多关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。