首页 / 浏览问题 / 组件 / 问题详情
iobjectjava高并发下数据集查询怎么提升
zhouyun  (59分)  初出茅庐
6月2日, 2017
举个栗子:

项目使用postgresql,200最大连接,连接池已使用,数据集创建了r树索引和字段索引。

服务器8个节点,800并发压测5500/分钟吞吐量,时间耗在查询上,单次查询几十毫秒,并发下查询4000ms左右。主要是空间查询,点查面这种加上属性过滤

1个回答

你好,首先是代码上的优化,具体细节请自行优化或联系我们;其次,参考iServer的做法,可以有如下几点:
1. 使用http缓存、临时资源缓存,相同请求直接返回上次结果不再重复执行,具体实现可以使用ehcache。
2. 多实例,在iServer里的表现就是同一个服务发布多次,访问时由多个服务实例分担压力
3. 集群,可以提高并发量并且速度不会下降太多,缓存机制也需要在集群下生效
4. 轮询(即,按一定规则轮流访问多个相同服务实例),只是查询的操作并且数据不变,可以将数据和服务都拷贝多分,前端或者后端控制最终由哪个服务或服务集群处理。在iServer里就是多个iServer或iServer集群提供一个相同的服务,前端随机或别的方式向这些服务发起请求等。
毛瑞  (1,780分)  名扬四海
6月2日, 2017
当然,你们的功能可以扩展到iServer上,那么iServer的缓存、多进程多实例、集群机制都会生效。
...