我们正在开发一个独立的分布式(Web)应用程序框架。我们在每台机器上都有 sqlite dbs,框架在该机器上保存数据,但是如果机器在网络中,那么它们也需要将它们的数据同步到其他机器,并且数据应该是一致的。例如,用户可以在任何机器上注册,但该信息也应该复制到所有其他机器,用户可以登录到任何机器,然后移动到任何其他机器而无需重新验证(机器将显示所有在线机器的列表,用户可以单击其中任何一个以移动到该机器的 Web 应用程序)。
我们可以有主机的概念,但该机器也将是对等机而不是专用主机(服务器),该主机的目的是保持机器的单一参考点,而不是向对等机询问信息。
为了使数据一致,我们考虑的一种方法是首先在主计算机上创建数据,然后在本地计算机上制作副本以避免数据不一致。(例如,两个用户创建具有相同用户名的用户)。SO机器将有一个点来验证数据以避免重复和网络拥塞。
而且我们不需要复制/同步每个数据,只需要复制用户、会话等。
有许多查询。
在交易中如何处理?最好的方法是什么?
Guid 是标识符,我们应该在任何地方保持 id 相同还是每个数据源都可以有自己的 id?
我们需要将同步器作为一个单独的工具,以便其他服务也可以使用它来发送数据/文件和复制。
我们正在使用.net 技术。我们正在考虑将 pnrp 作为基础技术堆栈。