JAVA中高访问量高并发的问题怎么解决?

2024-12-10 04:18:08
推荐回答(5个)
回答1:

你指的高并发量大概有多少?

几点需要注意:

  1. 尽量使用缓存,包括用户缓存,信息缓存等,多花点内存来做缓存,可以大量减少与数据库的交互,提高性能。

  2. 用jprofiler等工具找出性能瓶颈,减少额外的开销。

  3. 优化数据库查询语句,减少直接使用hibernate等工具的直接生成语句(仅耗时较长的查询做优化)。

  4. 优化数据库结构,多做索引,提高查询效率。

  5. 统计的功能尽量做缓存,或按每天一统计或定时统计相关报表,避免需要时进行统计的功能。

  6. 能使用静态页面的地方尽量使用,减少容器的解析(尽量将动态内容生成静态html来显示)。

  7. 解决以上问题后,使用服务器集群来解决单台的瓶颈问题。

基本上以上述问题解决后,达到系统最优。

至于楼上有人提到别用JAVA来做,除非是低层的连接数过大(如大量的端口占用需求),这种情况下考虑直接C来写,其他的可以用JAVA来做。

回答2:

concurrentmap 一写,多读,线程安全,这应该是你要的答案
synchronizedmap 一写一读
如果数据量达到10TB以上 那建议用 Hadoop 或 spark

回答3:

这个问题问的太广了,

首先要了解高并发的的瓶颈在哪里? 

1、可能是服务器网络带宽不够 2.可能web线程连接数不够 3.可能数据库连接查询上不去。

 

根据不同的情况,解决思路也不同。

  1. 像第一种情况可以增加网络带宽,DNS域名解析分发多台服务器。

  2. 负载均衡,前置代理服务器nginx、apache等等

  3. 数据库查询优化,读写分离,分表等等


还有其他多种,多学习学习!!!具体情况具体分析。 想要做到淘宝那样,每一个细节都要扣出来。想网页传输的内容压缩等等

回答4:

如果有高访问,高并发的需求,就别用java来做。
java不适合做这种方面的工作,它在web上的用途更多是用来做行业性软件开发,对讲求效率方面的网站性工作不太适合。
如果非要用java做的话,一是调优,二是采用集群模式布署。三是写好网站的程序。4是不要做实时性要求比较高的工作,降低对严谨性方面的要求。

回答5:

1:提高数据库连接池
2:引入多线程Thread
3:多设临时状态(好控制)
4:详谈qq:863432026