Java 大型系统高并发大数据的处理方式

时间:2023-01-18 15:16:59

页面静态化 (页面层面的缓存)

缓存 (memcached、redis等,数据缓存、避免多次请求)

集群负载均衡(单机处理能力不足)

分库分表(大量数据的处理、原则分、分、分)

读写分离

队列、MQ、数据库增加加锁(防止并发)

存储(IO最耗性能)

小型机(提交硬件性能,呵呵)

..... 等待再补充

数据库层面:

当数据增加到100万以上,那么,MySQL的效能急剧下降  
常用的优化措施是M-S(主-从)方式进行同步复制
M-M-Slaves方式,两个M可进行切换,Slaves可进行负载均衡
随着用户进一步增加,你的用户表数据超过1千万,这时那个M变成了SPOF
不能任意扩充Slaves,否则复制同步的开销将直线上升
方法是表分区,从业务层面上进行分区
最简单的,以用户数据为例。根据一定的切分方式,比如id,切分到不同的数据库集群去

需要注意的是: 
1、禁用全部auto_increment的字段 
2、id需要采用通用的算法集中分配 
3、要具有比较好的方法来监控mysql主机的负载和服务的运行状态。如果你有30台以上的mysql数据库在跑就明白我的意思了。 
4、不要使用持久性链接(不要用pconnect),相反,使用sqlrelay这种第三方的数据库链接池,或者干脆自己做。