我们正在尝试设计6个web服务,它将服务于另一个客户端组件。客户端组件需要我们正在实现的web服务中的数据。
现在,问题是,我们正在实现的不是一个Web服务,有一个Web服务是客户端组件碰到的,这就启动了一系列(另外5个) Web服务,它们从各自的数据存储中收集数据,最后将数据提供给原始的Web Service,然后将数据传递回客户端组件。
因此,如果请求的数据变得巨大,那么,这将是一个严重的问题,我们的内部通信渠道。
那么,你们有什么建议?如何避免内部Web服务之间的通信通道超载,同时还可以将数据传递给客户端组件。
更新1
使用5WS,其中,1WS不知道其他的,除非下一个是业务需求。事实上,有5家公司正在整合“小型服务”。
我们使用Java和Axis2
发布于 2010-04-17 13:18:18
我们也遇到过类似的问题。除了试图避免它(例如对于内部通信,直接到db,而不是web服务),你可以减轻它,至少不执行5个左右的任务串联。创建新线程,并行地收集它们,并在结束时处理它们,以减少延迟(除非它们可能争夺相同的资源和瓶颈)。
但是在我做任何负载测试之前,看看它是否是一个问题,并获得一些基线统计数据,这样您就可以看到每个更改带来了什么改进。此外,有时您可能会更好地调整网络设置或实际网络,而不是试图优化代码-但再次测试和查看。
发布于 2010-04-17 18:10:49
将所有数据放在临时压缩文件上,并返回文件的ftp url。
客户端获取大数据块,解压缩并读取它。(可能是ftp服务器的一些身份验证机制)
https://stackoverflow.com/questions/2657313
复制相似问题