高并发系统的设计需要注意一下几点:
用jprofiler等工具找出性能瓶颈,减少额外的开销.
尽量使用缓存,包括用户缓存,信息缓存等,多花点内存来做缓存,可以大量减少与数据库的交互,提高性能.
优化数据库查询语句,减少直接使用hibernate等工具的直接生成语句(仅耗时较长的查询做优化).
优化数据库结构,多做索引,提高查询效率.
统计的功能尽量做缓存,或按每天一统计或定时统计相关报表,避免需要时进行统计的功能.
能使用静态页面的地方尽量使用,减少容器的解析(尽量将动态内容生成静态html来显示).
硬件上就是提高服务器性能,提升允许最大访问量,代码上面可以使用连接池的方式,更合理的规划连接,提高连接的有效利用率
负载均衡(软件负载均衡、硬件负载均衡)
分布式数据库(数据库主从分布、数据库分割、数据库缓存)
首先,为防止高并发带来的系统压力,或者高并发带来的系统处理异常,数据紊乱,可以以下几方面考虑:1、加锁,这里的加锁不是指加java的多线程的锁,是指加应用所和数据库锁,应用锁这边通常是使用redis的setnx来做,其次加数据库锁,因为代码中加了应用所,所以数据库不建议加悲观锁(排他锁),一般加乐观锁(通过设置一个seq_no来解决),这两个锁一般能解决了,最后做合理的流控,丢弃一部分请求也是必不可少的
java多线程并发问题产生的主要原因是多个线程访问一个实例,导致其中一个线程修改或删除这个实例时,其他线程产生并发问题.
要解决这种并发问题有两种方法:
(1)加上线程锁synchronization
以上就是土嘎嘎小编为大家整理的解决java代码并发相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!