高性能图像流应用程序的体系结构/工具/技术-Java

高性能图像流应用程序的体系结构/工具/技术-Java,java,performance,tomcat,Java,Performance,Tomcat,目前,我们在REST和SOAP中都有Java Web服务,它们将图像流传输到Swing客户端。Swing客户端就像一个视频播放器,具有播放、前进等控件。它调用Web服务并显示图像。播放时,它必须连续获取图像(jpeg)并显示它们,以便模拟视频。还有其他自定义控件,如向前移动,它在某个给定点上拖动图像 Tomcat服务器 Spring MVC REST Swing(客户端) Java 1.7 AWS上有2台服务器 在服务器上,webservice调用AWSAPI来提取图像。图像以原始字节的形式发送

目前,我们在REST和SOAP中都有Java Web服务,它们将图像流传输到Swing客户端。Swing客户端就像一个视频播放器,具有播放、前进等控件。它调用Web服务并显示图像。播放时,它必须连续获取图像(jpeg)并显示它们,以便模拟视频。还有其他自定义控件,如向前移动,它在某个给定点上拖动图像

Tomcat服务器
Spring MVC REST
Swing(客户端)
Java 1.7
AWS上有2台服务器

在服务器上,webservice调用AWSAPI来提取图像。图像以原始字节的形式发送

目前,性能是一个问题。当Swing viewer加载时,我们提取x数量的图像并开始播放,在播放时,我们提取相同数量的图像并在本地缓存它们

我不认为更多的服务器可以解决这个问题。我们需要找到一个好的架构来提高性能。可以做些什么


有什么想法吗?

这是个无关紧要的问题,但是Swing客户端真的要模拟视频播放器吗?这听起来像是你重新发明了流媒体视频协议,每次加载一个JPEG来模拟电影帧。对。但是我们还有很多其他的自定义控件需要在图像/播放上完成。不仅仅是一个简单的图像查看功能。你能让客户端直接从AWS请求图像,而不是通过你自己的服务器代理它们吗?我不想。因为在服务器端还有其他的事情要做,这个服务不仅仅是为了图像服务,它还做其他的事情。我想,把这个任务推给客户也是个坏主意。你说的“性能是个问题”到底是什么意思?您是否分析了性能并在应用程序的组件之间进行了分解,例如AWS和Tomcat之间的网络开销/Tomcat和Swing客户端之间的网络开销/Tomcat处理时间/客户端处理时间?哪些部分是瓶颈?如何从AWS中“提取图像”?一次一个?您能否提供有关如何使用AWS存储和检索图像的更多详细信息?您使用的是S3存储桶,还是一些数据库服务?