有一个REST端点,它为我的应用程序提供大量(数十千兆字节)的数据块.
应用程序按照自己的步调处理数据,随着传入数据量的增长,我开始达到REST端点超时.
意思是,处理速度低于网络吞吐量.
不幸的是,没有办法提高处理速度,因为没有"足够" - 传入的数据量可能会无限增长.
我正在考虑在处理之前在本地存储传入数据的方法,以便在超时发生之前释放REST端点连接.
我到目前为止所做的是将输入数据下载到临时文件并使用OutputStream/InputStream同时读取(处理)所述文件.
使用文件进行缓冲.
这带来了它自己的问题:
是否有传统方法来做这样的事情?
有替代解决方案吗?
请提供一些指导.
Upd:
我想指出:http服务器不受我的控制.
将其视为供应商数据提供商.他们有很多消费者,拒绝为一个人改变任何东西.
看起来我们是唯一使用其所有数据的人,因为我们的客户端应用程序处理速度远远高于其示例客户端性能指标.尽管如此,我们无法将我们的应用性能与网络吞吐量相匹配.
服务器不支持http范围请求或分页.
没有办法将数据分成块加载,因为没有过滤属性来保证每个块都足够小.
简而言之:我们可以在超时发生之前的给定时间内下载所有数据,但无法处理它.
在输入流和outpustream之间有一个适配器,以pefrorm作为阻塞队列,将有助于一吨.
我想创建一个存储过程,该过程采用表和row_id的名称,并可以将其序列化为xml字符串.
该表可能包含clobs和blob.
我可以在PL/SQL中执行此操作,还是必须使用Java?
这样做的主要目的是让所有更新一个表,并删除了一些表,保持X最新版本,或数据的X天(该表将包括类似chg_date(default:sysdate),chg_type(U or D),chg_xml,并可能与有关用户的一些元数据).
可能的用途: - 它还可以保留所有数据并用作日志 - 将行返回到任何先前值的能力. - 能够以特定格式执行EDI.
我不想使用Oracle的闪回查询来实现这一目标,因为无法保证数据的可用性.
我在Ubuntu 14.04中尝试启动Eclipse时遇到问题.飞溅的图片弹出,然后眨眼,变成白色 - 直到王国来临之前没有任何反应.我尝试过Luna,Kepler和3.8(来自Ubuntu存储库).EE和SE版本 - 两者都相同.我也尝试用不同的(oracle)vm-1.7和1.8启动它们.是的,我尝试过-clean简单的工作区删除.
这是它在控制台中唯一说的内容:
org.eclipse.m2e.logback.configuration:在初始化状态位置之前激活了org.eclipse.m2e.logback.configuration包.将在状态位置初始化后重试.
Java VM工作正常 - 我可以启动(例如)IDEA或java\javac命令.
有什么建议?