问题描述
我打算测试将 Yugobyte
DB (https://www.yugabyte.com/) 用于 Akka 持久层的可行性。
来自https://doc.akka.io/docs/akka/2.4/java/persistence.html:
Plugin TCK 为了帮助开发者构建正确和高质量的 存储插件,我们提供了一个技术兼容工具包(TCK for 简短)。
TCK 可用于 Java 和 Scala 项目。对于 Java 你 需要包含 akka-persistence-tck 依赖项:
最新版本的 Akka 文档:https://doc.akka.io/docs/akka/2.6.15/persistence.html?language=java 没有提到 Technology Compatibility Kit
。不再支持 Technology Compatibility Kit
吗?我的目标是使用 Akka 2.6.15 版
从 https://mvnrepository.com/artifact/com.typesafe.akka/akka-persistence-tck 开始,最新的 tck 版本日期为 Jun,2021
,因此仍然支持 tck。
如果 Akka 持久化支持 Yugobyte,那么 Technology Compatibility Kit
是否应该有一个 Yugobyte
?
此处记录了 Cassandra 对 Akka 的支持:https://doc.akka.io/docs/akka-persistence-cassandra/current/ 而 Akka 文档中未提及 Yugobyte
。如何确定 Akka 是否支持 Yugobyte
?我应该使用 Technology Compatibility Kit
执行一系列测试吗?
yugobyte
团队/供应商是否应该实施 tck (https://en.wikipedia.org/wiki/Technology_Compatibility_Kit) 以启用对 Yugobyte
的 Akka Persistence 支持?
解决方法
TCK 本质上只是一个在开发 Akka Persistence 插件时使用的测试套件。如果您的插件通过了测试,那么几乎可以肯定可以使用 Akka Persistence。
要使用 Akka Persistence 的 Yugabyte(假设它不支持 JDBC),您需要实现一个 Akka Persistence 插件,并为您的插件针对的 Akka 版本声明对 akka-persistence-tck
的测试依赖。然后您可以扩展测试套件中的类(例如 akka.persistence.journal.JournalSpec
)以合并 TCK 的测试。