spring-boot - Spring-boot Camel SQL中的ResultSet缓存
问题描述
我已经实现了一个每 5 分钟运行一次的Spring-boot Camel批处理应用程序,它使用camel-sql组件从表中查询一些数据。我正在使用 java DSL 实现并在内部配置我的路由端点RouteBuilder.configure
。一切都按预期正常工作。但现在作为优化的一部分,我计划缓存一些不经常更改的查询结果,如一些全局配置表、位置时区表等。
我已经阅读了Camel EHcache文档,但没有正确理解标准的实现方式。
我的期望如下
假设我的路由是,
from(timercomponent)
.to(SqlComponent1)
.process(ResultProcessor::processResult1)
.to(SqlComponent2) // needs to be cached
.process(ResultProcessor::processResult1)
....
...
我不想总是SqlComponent2
访问数据库,它应该使用第一次执行的缓存值,过期时间为 1 周。
另外我只是想知道在这种情况下哪个是最好的缓存实现。
解决方案
你是什么意思?Ehcache 还是别的什么?或者如何配置Ehcache缓存?
从 Ehcache 的角度来看,您将需要一个使用 1 周 TTL 到期的缓存。
然后,我用 Camel 实现缓存已经有一段时间了,但文档似乎说 Ehcache 幂等存储库应该可以解决问题。
推荐阅读
- reactjs - 我们可以通过在组件中使用 componentDidCatch 来捕获操作引发的异常吗?
- google-maps - 如何在 iOS 和 android 上以 react native 实现谷歌地图?
- jquery - 重新连接到 Nodejs socket.io 服务器
- linux-kernel - 在 Linux 内核中向用户空间公开一个额外的标头
- java - 如何使用 O(n) 时间复杂度算法查找有效子字符串的数量
- binary - 将二进制文件从特定地址点填充到地址中的另一个特定地址点
- jquery - Jquery:更改 div 的内容会修改其行为
- typescript - Vue + webpack + TS:生成声明时找不到.vue.d.ts
- angular - 在 Angular 上调整 SVG 大小
- sql - 访问加入 TRANSFORM / PIVOT 查询