我正在研究基於Apache Cassandra的系統,並使用Akka編寫,我正在學習如何在沒有RDBMS的情況下生活。但是,我有一個奇怪的問題,我想就如何實現它提供反饋意見。基本上,我已經學會了在沒有ACID的情況下工作,並得出結論,即使銀行系統可以在數據庫中完成,只要它具有ACID中的(A)調解。購買產品,庫存管理等是可以解決的,我已經解決了它們。那麼問題就圍繞着一個簡單的活動,即註冊用戶。Cassandra + Akka and Global Constraints without ACID Transactions
當用戶註冊約束條件時,用戶可能未註冊其他用戶使用的用戶名或其他用戶使用的電子郵件。然而,這是一個全球性的約束,卡桑德拉阻礙了我。我不能首先檢查數據庫中的用戶名,然後將用戶寫入分佈式實現中,因爲我缺少Cassandra內部的(I)孤立的方面。對於大多數其他事情,我可以組建一個演員來處理單個產品或供應商或客戶,並處理那些參與者的消息並強制執行約束,但在這種情況下,我正在處理全局資源。
爲了解決這個問題,我使用了一個集羣單例來實現註冊過程,並且所有註冊都是通過這個強制實施約束但卻有單點故障的參與者來進行的。
因此,我留下了問題。只使用Cassandra和Akka,人們對於我如何在保持全局約束的情況下實現用戶註冊的任何建議都可以在沒有集羣單例的分佈式環境中使用。這種實施也應該適用於系統中的其他全球資源。
我熱切期待您的想法。