Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 应用程序体系结构建议(可扩展性/性能)_.net_Web Applications_Architecture - Fatal编程技术网

.net 应用程序体系结构建议(可扩展性/性能)

.net 应用程序体系结构建议(可扩展性/性能),.net,web-applications,architecture,.net,Web Applications,Architecture,我使用.NET开发了一个完全在内存中的应用程序。数据在启动时从持久性存储加载一次,从那时起,只有对对象的更改才通过工作队列从应用层流回持久性存储。它工作得很好,基准测试甚至更好(每秒10万个api事务)。我意识到这是一个非传统且难以扩展的架构。这有点像一个实验 (左侧为当前架构,右侧为所需架构) 现在我开始考虑裁员。我想并排运行两个应用服务器,并在它们之间实现负载平衡。这意味着保持内存中所有对象的同步—可能是通过持久tcp连接来回穿梭二进制序列化对象。最终的一致性是可以的。从概念上讲,我可以看

我使用.NET开发了一个完全在内存中的应用程序。数据在启动时从持久性存储加载一次,从那时起,只有对对象的更改才通过工作队列从应用层流回持久性存储。它工作得很好,基准测试甚至更好(每秒10万个api事务)。我意识到这是一个非传统且难以扩展的架构。这有点像一个实验

(左侧为当前架构,右侧为所需架构)

现在我开始考虑裁员。我想并排运行两个应用服务器,并在它们之间实现负载平衡。这意味着保持内存中所有对象的同步—可能是通过持久tcp连接来回穿梭二进制序列化对象。最终的一致性是可以的。从概念上讲,我可以看到在两个应用服务器从持久性存储冷启动到相同状态后,这将如何工作,但是,我很难概念化在请求流入时如何实例化和同步新的应用服务器节点。我猜这听起来像快照+事务日志之类的东西


这听起来是可以实现的吗?这种体系结构在任何地方都可以使用吗?

有一些产品可以满足您的需求。你还没有提到你的NFR,所以我不知道你是否只是为了提高效率而手摇。像英菲尼斯潘这样的东西应该适合你。更具挑战性的是数据的事务性,因为您在内存空间中。值得探讨如何实现技术和销毁测试。

有一些产品可以满足您的需求。你还没有提到你的NFR,所以我不知道你是否只是为了提高效率而手摇。像英菲尼斯潘这样的东西应该适合你。更具挑战性的是数据的事务性,因为您在内存空间中。值得探讨如何实现技术和销毁测试