.net 基于p2p的分布式解决方案

.net 基于p2p的分布式解决方案,.net,distributed,p2p,distributed-transactions,.net,Distributed,P2p,Distributed Transactions,我们正在开发一个独立的分布式web应用程序框架。我们在每台机器上都有sqlite dbs,框架在这台机器上保存数据,但是如果机器在网络中,那么它们也需要将数据同步到其他机器,并且数据应该是一致的。e、 g.用户可以在任何机器上注册,但该信息也应复制到所有其他机器上,用户可以登录到任何机器,然后移动到任何其他机器上,而无需重新验证。机器将显示所有在线机器的列表,用户可以单击其中任何一台机器以移动到该机器的web应用程序 我们可以有一个主机器的概念,但该机器也将是一个对等机器,而不是一个专用的主服务

我们正在开发一个独立的分布式web应用程序框架。我们在每台机器上都有sqlite dbs,框架在这台机器上保存数据,但是如果机器在网络中,那么它们也需要将数据同步到其他机器,并且数据应该是一致的。e、 g.用户可以在任何机器上注册,但该信息也应复制到所有其他机器上,用户可以登录到任何机器,然后移动到任何其他机器上,而无需重新验证。机器将显示所有在线机器的列表,用户可以单击其中任何一台机器以移动到该机器的web应用程序

我们可以有一个主机器的概念,但该机器也将是一个对等机器,而不是一个专用的主服务器,该主机器的目的是为机器保留单个参考点,而不是向对等机器询问信息

为了使数据一致,我们考虑的一种方法是先在主机上创建数据,然后在本地机器上复制,以避免不一致的数据。e、 g.两个用户使用相同的用户名创建一个用户。因此,机器将有一个点来验证数据,以避免重复和网络拥塞

我们不需要复制/同步每个数据,只需要复制/同步用户、会话等

有许多查询

如何在交易中处理它?最好的方法是什么

guid是标识符,我们应该在任何地方都保持id相同,还是每个数据源都可以有自己的id

我们需要将synchronizer作为一个单独的工具,以便其他服务也可以使用它来发送数据/文件和复制


我们正在使用.net技术。我们考虑将pnrp作为基本的技术堆栈。

如果主机退出P2P网络会发生什么?如果它保证可用,那么它就是一台服务器,您的网络将变得更加简单,只需一个故障点;如果它不能保证可用,您可能需要考虑如何进行“主选”,自动决定新的主选。这是一个复杂的主题。对于跨多个对等点的双向数据同步,请参阅。我们还有一台故障转移机器。