SuperMap iServer Java 6R集群研究2-进程内集群

      最近一个同事测试SuperMap iServer Java 6R性能,问及集群配置及进程内集群的概念,就索性自己配置测试一下,算是SuperMap iServer Java 6R集群研究的第二篇吧。

 

       还是从概念了解起,原理如下:在 SuperMap iServer 中,服务提供者提供的 GIS 功能通过服务组件封装成粗粒度的模块,然后发布为不同类型的服务。即服务请求到达服务组件后,是由服务组件寻找对应的服务提供者,由服务提供者最终处理的。

      SuperMap iServer 进程内集群是指将进程内提供同种 GIS 功能的服务提供者组成逻辑意义上的集群,从而提高服务器单机环境下高并发访问时的效率。

      例如将 World.sxwu 工作空间发布为 GIS 服务,想提高单服务器环境下,该 GIS 服务高并发访问时的效率,可以在服务提供者层使用 World.sxwu 工作空间构建两个服务提供者,如 ugcMapProvider-World 和 ugcMapProvider-World1,然后将以上两个服务提供者同时供服务组件使用并发布为 GIS 服务,该 GIS 服务处理高并发访问时,就比普通的 GIS 服务具有更高的稳定性和效率(此处说明下,UDB的数据源也可以配置为多个Provider)。

      注意,不同数据来源的服务提供者只要提供了相同的 GIS 功能,也可以组成进程内集群。例如 wmsMapProvider-World 是由远程 WMS 服务构建的服务提供者,它提供了跟 ugcMapProvider-World 同样的 GIS 功能,那么就可以把 wmsMapProvider-World 也加入进程内集群,从而进一步提升高并发访问时 GIS 服务的稳定性和效率。另外,服务提供者也可以和服务提供者集合组成进程内集群,前提是服务提供者与服务提供者集合中的某个服务提供者具有相同的 GIS 功能。

processcluster

 

图1

 

前面讨论了进程内集群的相关注意事项,下面配置为一个测试环境,即如何配置进程内集群并且测试使用上了集群。

 

1、打开服务管理器,添加多个(这里以两个为例)具有相同 GIS 功能的地图服务提供者,如 map1和map2,配置参考下图2及3。配置服务提供者map1

1 图2

配置服务提供者map2如下图3

2

图3

2、配置完成之后配置一个服务组件,配置效果图4

 

3

图4

3、配置完成之后可以直接浏览服务实例mapcon/rest,则随意照一张地图浏览,即可如下图5

4

图5

点击silverlight浏览可以出图。

此时有两个方案可以看到是否使用上了集群

a)使用Httpwatch这些请求跟踪工具,可以看到下图6可以看到有图片是从http://localhost:8090/iserver/output/cache下取出的,也有从http://localhost:8090/iserver/outputC/cache下取出。image b)可以直接浏览图片生成目录,看到两个目录下均有图片,而且图片生成时间一致。

6

进程内集群总算是简单配置完成,实际部署还需要综合考虑性能与部署情况,上面部署方式加大了服务组件层请求并发数压力,所有请求都要经过组件层,如果把图片服务器分出来就最好了,而且图片位于两个目录下还是一个目录下性能最优需要性能测试来验证吧,另外从请求返回结果来看,所有返回图片请求均分从两个图片服务器出来,看来服务提供者只是简单的进行了均分吧。另外后续部署考虑缓存存放位置也是一个值得考虑的地方。上面是个简单的进程内集群的介绍及测试方案,望大家指正。

posted @ 2011-06-16 22:51  awei20081  阅读(273)  评论(0编辑  收藏  举报