1

我已经使用 .NET 开发了一个完全在内存中的应用程序。数据在启动时从持久存储加载一次,然后只有对对象的更改通过工作队列从应用程序层回传到持久存储。它运行良好,基准测试甚至更好(每秒 100k api 事务)。我意识到这是一种非常规且难以扩展的架构。这是一个实验=)

建筑学

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

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

这听起来可以实现吗?这种架构是否在任何值得注意的地方使用?

4

1 回答 1

1

那里有满足您需求的产品。你还没有提到你的 nfrs,所以我不知道你是否只是为了提高效率而想手动滚动。像 infinispan 这样的东西应该适合你。鉴于您在内存空间中,更具挑战性的是数据的事务性。值得探索如何实现技术和破坏测试。

于 2012-06-09T11:53:16.477 回答