语境:
- 我有一个基于 Java 的应用程序,比如说 AppA
- 它查询数据库,比方说 DataD
- 它适用于该数据,发挥一些作用并将其传递给另一个应用程序,例如 AppB
问题:
- DataD中的数据量非常大。
- 我的 AppA 并没有真正具备一次性处理所有数据的能力。
- 我的 AppB 对一次性获取所有数据也不是很感兴趣。
解决方案:
- 我想从 DataD 查询数据,但一次只能以 10,000 个(可配置)的形式查询。
- 我将在 AppA 中处理该批次,将其传递给 AppB,然后在 DataD 上执行另一个查询。
- 我将不得不告诉 DataD,我已经阅读了多少条记录,并要求它提供接下来的 10,000 条记录。所以不知何故,我的 AppA 需要跟踪最后读取的数字,并有一种巧妙的方式有效地查询 DataD 以获取一系列数据。
- 我的 DataD 没有任何方法来记录它已经发回的内容(或维护标志)。它是一个数据库,也不可能在其上添加任何 SOA / REST 智能。因此,我的 AppA 必须足够智能才能查询特定范围。
问题:
- 无需在核心 java 中使用太多杂耍,是否有可能使用任何框架来实现这一点 - 我喜欢称之为 - “数据流”?如果是这样,怎么做?