如何解决如何在NoSQL中设计存储库层?
概述:我们正在使用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 举报,一经查实,本站将立刻删除。