我对分布式数据库相当陌生,尽管我已经研究了相关文献(例如 CAP 定理、CRDT)并实现了一些 POC 以允许水平扩展我的应用程序。
然而,现在我面临一个具有挑战性的问题。为了水平扩展应用程序,服务之间的通信是通过分布式队列完成的。作为这里的背景,我确实需要一个自定义 CRDT 方法来保持数据最终一致,并且我确实需要我的应用程序像缓存一样工作(与 REDIS 远程相关)。
现在的挑战是我还需要持久化数据。这要求我使应用程序缓存和数据库中的数据最终保持一致。我检查了 Cassandra,我看到了一张票 [1],有人试图为自定义 CRDT 合并功能添加功能(正如我提到的那样,这是有原因的)。这从未进入 Cassandra,并且似乎有一些问题需要解决。
我的选择是什么,要么是允许自定义合并的具体分布式数据库引擎,要么是可以帮助解决问题的算法(例如,以数据库触发器或类似的形式)。