【问题标题】:Java REST service binary downloadsJava REST 服务二进制文件下载
【发布时间】:2012-07-02 00:04:06
【问题描述】:

我有一个 Java REST Web 服务,它当前正在将文本文件下载到 iPad 应用程序。我们希望将服务扩展到现在从多个请求中一次下载 10 - 20 Mb 的二进制数据。这些请求的范围从几 kb 到几 Mb。我们现在如何设置它,下载效率不是很高,而且大多数时候下载没有完成。有人对资源或行动计划有什么建议吗?

谢谢

编辑以提供更多信息。当前设置是没有额外框架的 tomcat web 服务器。我传入一个 URL 以获得一堆插入语句和大约 40 个链接来下载 blob 数据。然后我一次发出 2 个这 40 个请求,直到该过程完成。我已经尝试了超过 2 个请求,但它通常会很快失败,因为客户端确实关闭了连接错误。存储二进制数据的数据库是SQLite。

还有其他需要帮助的信息吗?

【问题讨论】:

  • 请提供更多详细信息,说明哪些地方效果不佳以及您认为这是为什么......当前的设置是什么?
  • 你用普通的网络浏览器测试过吗?问题可能出在从 sqlite 读取 blob 的部分吗?您是否评估过 40Mb blob 的替代方案?
  • @SimoneGianni 不幸的是,blob 是强制性的。我不会走这条路,但这是我坚持的。当我的 java 应用程序启动而不是直接查询数据库时,我通过一些缓存提高了查询的性能。谢谢!

标签: java objective-c web-services tomcat download


【解决方案1】:

这应该很容易与 Apache Tomcat 一起使用。我在 iOS 上开发了几个应用程序,它们通过多个请求(图像、JSON 和 XML)从服务器下载数据。我认为问题可能出在iOS App中。您是否在单独的线程中从您的应用程序发出多个请求? iOS 不喜欢 UI 线程因网络操作而被阻塞。

【讨论】:

  • 我正在使用 ASIHttpRequest 库来下载。这是使用他们自己风格的nsopeartionqueue。我认为主要问题是,如果有很多请求,tomcat 会将用户排在队列中,但这会增加甚至开始下载数据的等待时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-16
  • 1970-01-01
  • 1970-01-01
  • 2013-03-20
  • 2012-11-23
  • 2012-11-06
  • 1970-01-01
相关资源
最近更新 更多