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

(当前架构在左侧,所需的架构在右侧)
现在我开始考虑冗余了。我想同时运行两个应用程序服务器,并在它们之间实现负载平衡。这将意味着保持所有内存中对象的同步-可能是通过持久的tcp连接来回穿梭二进制序列化对象。最终的一致性是可以的。从概念上讲,在两个应用服务器从持久存储冷启动到相同状态后,我可以看到这是如何工作的,然而,我很难概念化如何在请求流入时实例化和同步新的应用服务器节点。我猜这听起来像是快照+事务日志之类的东西?
这听起来是可以实现的吗?这种架构是否在任何值得注意的地方使用?
发布于 2012-06-09 19:53:16
有一些产品可以满足你的需求。你没有提到你的nfrs,所以我不知道你是否想要手卷只是为了提高效率。像infinispan这样的东西应该可以为你工作。更具挑战性的是数据的事务性,因为你在内存空间中。如何实现技术和销毁测试是值得探索的。
https://stackoverflow.com/questions/10960714
复制相似问题