如何在NoSQL中设计存储库层?

问题描述

enter image description here

概述:我们正在使用Cassandra在应用程序中存储缓存。我们的表行程中包含(分区键,集群键1,集群键2)主键和有效负载柱。当前的实现有CacheService[T: Key],它具有3种获取,更新和删除方法。我们有ItineraryService[T: Key]正在实现这3种方法。在当前的get方法实现中,我们仅通过使用分区键来获取数据。此CacheService也由其他服务实现。

问题:问题是有时我们需要通过集群键1或集群键2来获取数据。现在我们只有一项行程服务,无法更改实现。

解决方案:我想到的解决方案将创建另一个抽象层,然后在其中创建方法getByClusterKey1和getByClusterKey2。我无法在ItineraryCache Service中执行此操作,因为我解释了CacheService也由其他服务实现。

预期的解决方案::我想传递一些Map [Key,ColumenName]。如果我可以直接在Cassandra中获取数据,则将相应地构建查询,否则我将获取所有数据,然后进行过滤。我了解查询顺序,因此我将检查可以建立查询的集群键,然后留下其他键并稍后过滤掉。

如果你们已经建立了类似的东西,请给我一些建议。我要构建一个松耦合的设计。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...