求教现在处理大数据量的web开发,框架选择

最近在做一个项目,使用的是flex+ejb+blazeds,通过weblogic发布

但是客户端要求返回大量的数据,刷新时间还比较短,由于界面UI采用的是adobe flash builder开发,总感觉好像比较卡
weblogic服务器用的时候,数据库查询页优化了很多,服务器自己也优化了下,但总是感觉采用的方式不对或者说设置的不够好,求教,对于数据量很大的实时反馈类web开发,还有什么其他好的框架或者说,原有基础上有什么要改进的

6个回答

但是客户端要求返回大量的数据,刷新时间还比较短,由于界面UI采用的是adobe flash builder开发,总感觉好像比较卡 此处可以看出是flash卡 而不是你的后端卡

你如何确定的你的服务器比较慢? 还是建议监控一段时间看看 问题在哪? 是页面的问题,还是服务端的问题。

服务端可以考虑监控
cpu
Load average
内存
数据库慢查询
网络IO等

数据量很大,数据库压力怎么样?展示大量数据的时候,如果变动不大,建议使用缓存服务器,memcache之类的,第一次查询的时候把数据集放到缓存服务器,翻页的时候直接从缓存服务器取,除了第一次慢些,翻页的时候非常快。你用的flex,可以在页面初始化,组件还未完全展示的时候就触发后台去缓存这些数据,在组件初始化数据的时候就可以直接从缓存服务器拿了。

首先定位问题。通过weblogic的console去看看队列有多少,每个队列的耗时。这样能够知道是weblogic是否有必要做集群。如果队列够用了,耗时比较长,那说明是获取数据占用时间长,做集群仅仅是负载分发、单点故障(如果你的队列总是堵塞,可以考虑做集群)。

确定是取数据问题,就先要定位到底是取数据的sql执行太久,还是对数据有逻辑处理,如果sql执行太久,就优化sql(通过执行计划等工具来定位),如果业务逻辑处理太久,就打印时间戳。最后就是数据传输flex端展现,flex是使用什么方式与后台交互的,http?webservice?大数据量的话,建议不要通过webservice的soap协议,因为xml解析比较耗时。

[size=medium]第一要务是找出性能瓶颈在哪里,然后对症下药。
是在前端展示,还是在服务端处理,还是在数据库访问。

对于服务端,考虑使用数据缓存(如memcached)、反向代理服务器缓存(如Nginx)、集群+负载均衡(如LVS或自己实现)、静态资源与动态资源分离(Apache+Tomcat)等。

对于数据库访问,如果成为瓶颈,
[list]
[*]如果是访问一张表很慢,可能要考虑水平切分;
[*]另外可考虑读写分离(读和写访问不同的库);
[*]还有如果表很多放在一个库里很慢,就进行垂直切分,按功能模块划分为多个库。
[/list]
数据切分后最大的问题是整合,可以自己实现,也可以考虑使用Amoeba或MySQL Proxy。

一般,使用缓存的策略优于集群。先从软件的角度去解决问题,在无法满足更高需求的情况下才考虑增加硬件资源。[/size]

这样的设计本身就有问题。
为什么每次都要刷新大量数据,为什么不只刷增量?

你可以通过查看服务器 内存,CPU,io占用,网络流量 具体判断是哪个地方问题
对于服务器的优化,远比从硬件解决好很多
如果大数据量,时效性不高,可以考虑分时段批处理
盲目扩大集群,不是明智选择

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问