我已经使用.NET开发了一个完全在内存中的应用程序。数据在启动时会从持久性存储中加载一次,然后只有对对象的更改才会从应用程序层通过工作队列慢慢回到持久存储。它工作得很好,基准测试甚至更好(每秒10万次交易)。我意识到这是一个非传统且难以扩展的架构。这是一个实验的东西=)应用程序体系结构建议(可伸缩性/性能)
(左当前架构,所需结构右侧)
现在我开始考虑冗余。我想要并行运行两个应用程序服务器并在它们之间进行负载平衡。这意味着保持所有内存中的对象同步 - 可能通过持续的tcp连接来回穿梭二进制序列化对象。最终一致性是好的。从概念上讲,我可以看到在这两个应用服务器从冷却启动到持久存储的相同状态之后这是如何工作的,但是我很难概念化如何在请求流入时实例化和同步新的应用服务器节点。我想这听起来很奇怪像一个快照+事务日志有点类似的东西?
这个声音是否可以实现?这种建筑在任何地方都可以使用吗?