Speedment ORM——有意的企业缓存

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 63w+ 字,讲解图 2808+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2200+ 小伙伴加入学习 ,欢迎点击围观

我第一次听说 Speedment 是在观看有关用于更新内存中数据 网格的 RDBMS 变更数据捕获 方法的 Hazelcast 网络研讨会 时。他们的产品非常符合 Greg Luck 的 Deliberate caching ,我可以看到许多企业产品从这种新的范式转变中获益。

我们很高兴与 Per-Åke Minborg 交谈,他是 Speedment AB 的首席技术官和创始人之一。

嗨佩尔。您能描述一下 Speedment 目标吗?

Speedment 带来了一种更现代的方式来处理位于各种数据存储(例如 SQL 数据库)中的数据。我们使用标准的 Java 8 流来查询数据源,因此开发人员无需学习新的复杂 API 或配置 ORM。因此,我们加快了开发过程。速度也将加快应用程序本身。一些现有产品的一个问题是它们实际上使数据访问比 JDBC 更慢 ,而不是更快。我们认为应该反过来,并且已经开发出一种方法来使应用程序通过 Speedment 运行得更快。

它与任何现有数据访问技术(JPA、jOOQ)有何不同?

JPA 是一个添加到 Java 的独立框架,并不总是很容易理解如何以最佳方式使用它。它没有利用 Java 8 中可用的所有新功能。此外,在 JPA 中,您开始构建 Java 域模型,然后将其转换为数据库域。 Speedment 和 jOOQ 则相反。您从数据模型开始,然后从中提取 Java 领域模型。尽管您可以使用 JPA 缓存数据,但 JPA 和 jOOQ 都无法像 Speedment 那样提供数据加速。此外,使用 Speedment,您不必学习新的查询 API,因为它依赖于标准 Java 8 流。

如果您喜欢阅读这篇文章,您可能想订阅 我的时事通讯 并获得 我的书 的折扣。


Speedment 是否转向了有意的缓存架构?

Speedment 的企业版包含“缓存”功能。我们的“缓存”的新功能是您将能够以多种方式(即使用多个键或搜索条件)在缓存中定位对象,而不仅仅是作为键/值存储。 “缓存”也可以与应用程序并发共享,以便可以在 O(1) 时间内完成缓存操作。例如,如果您要检索所有名为“Bob”的用户,您可以使用用户缓存的“视图”(即“名称”视图),并且您将能够快速并在恒定时间内获取所有 Bob,无论它们位于何处只有一个 Bob 或者如果有成千上万的 Bob。 Speedment 正在使用一种先进的 JVM 内存 解决方案,该解决方案可以将 JVM 扩展到数百 TB 而不会出现垃圾收集问题,并支持比实际 RAM 大小更大的 JVM。这允许您的所有数据都适合与应用程序相同的 JVM。 Speedment 缓存是“热”的,因此如果底层数据库发生变化,则使用反应模型相应地更新缓存。

它如何与 Hazelcast 内存数据网格集成

Hazelcast 提供了一个附加解决方案来使用分布式内存数据网格来保存所有缓存元素。这样,您将能够无限期地将应用程序扩展到任意数量的 TB。 Speedment 为 Hazelcast 提供了一个热缓存解决方案,可以与 Oracle 的 Golden Gate Hotcache 进行比较。

如果您喜欢这篇文章,我敢打赌您也会喜欢 我的书







整个平台的哪些部分将包含在开源版本中

Speedment Open Source 是一种原生 Java 8 API,具有强大的开发人员功能。除此之外,还有作为企业功能提供的附加组件。团队将不断评估社区贡献,并不断向主分支添加功能。我们希望我们的用户能够使用 Speedment Open Source 测试、开发和部署应用程序,但我们也希望能够为他们提供更多东西。如果他们想要企业级功能,如真正的大数据集、高可用性或集群环境,这些都可以从企业产品组合中添加。您可以访问我们在 GitHub 上的开源项目并关注那里的开发情况,或许还可以加入社区!第一个正式版本 speedment-2.0.0 将于夏末推出,将包含许多有趣的 Java 8 新特性。

感谢 Per 抽出宝贵时间接受本次采访。希望我们能听到更多来自你们的消息。

相关文章