一、多线程和高并发问题解决 首先要了解多线程高并发的的瓶颈在哪里? 1、可能是服务器网络带宽不够 2.可能web线程连接数不够 3.可能数据库连接查询上不去。 4.数据产生脏读等 1)增加网络带宽,DNS域名解析分发多台服务器。 2)负载均衡,前置代理服务器nginx、apache等等 3)数据库查询优化,读写分离,分表等等 4)尽量使用缓存,包括用户缓存,信息缓存等,多花点内存来做缓存,可以大量减少与数据库的交互,提高性能。 5)优化数据库查询语句,减少直接使用hibernate等工具的直接生成语句(仅耗时较长的查询做优化)。 6)能使用静态页面的地方尽量使用,减少容器的解析(尽量将动态内容生成静态html来显示) 7)避免产生脏读可以设置事务的隔离级别和java代码或数据库加锁。 二、对分布式的理解分布式应用程序的开发,要对应用程序进行分层,各层之间相互独立,通过服务或接口来进行调用,不仅便于开发的管理,也有利于集成其他平台上的应用程序,实现了功能模块的复用、重用,提高了应用程序的可扩展性。在业务数据量多的情况下,还要考虑构建分布式的数据库系统,这可以通过DBMS自动管理的数据订阅、分发技术实现数据库的数据同步,以达到数据共享的目的; 简单来说就是将一个庞大的系统按照服务功能或者表示层,中间层,数据层细化,划分成多个系统,然后各个系统之间通过消息队列中间件比如activemq进行消息通讯。然后再搭配使用分布式数据库和缓存。
|