如何避免使用 Apache Camel 将数据存储在内存中

问题描述 投票:0回答:0

在 apache camel 中,我调用 rest 服务来获取所有用户,然后我需要验证每个用户,然后对每个用户进行 rest 调用以获取产品,然后将其写入 .txt 文件。

from("start")
  .bean(userRestService.getAllUsers)
  .process(validationProcessor)
  .bean(productRestService.getProductByUserId)
  .process(writeFileProcessor)

我想避免将所有数据都存储在内存中,因为可能有 10k 用户。也许有人知道这样做的正确方法是什么? 我计划在 getAllUsers() 方法中添加分页(以获取 10 个用户),但我不确定如何在 Camel 中执行此操作(例如,如果我将添加 while 循环,我是否需要像 Pair> 从getAllUsers,或者 Camel 如何理解何时停止)?或者我应该切换到一些异步 httpClient 并从中返回 Observable 或 Stream 吗?写入文件时,我是否需要将每个产品一个一个地写入,或者我也可以将其转换为 Stream(只是不确定性能)

java apache-camel
© www.soinside.com 2019 - 2024. All rights reserved.