1

问题:我使用的软件 Lift 具有“用户会话”,其中可以放置任何类型的对象,这些对象在用户请求之间保留(具有 GC 超时)。虽然它易于使用且功能强大,但它有一个主要缺点:对象不可序列化,因此您无法将它们分发到其他服务器实例以实现高可用性。

是否有 API/工具可以获取随机对象,通过反射分析其结构,创建可以提取所有对象数据的编组器/解组器,并以可用于将对象分发到的格式返回它其他JVM。编组器/解组器本身应该是可序列化的。应该有一种方法来明确定义应该忽略某些数据,例如使用瞬态,并且还应该可以识别某些引用的对象实际上是必须以特殊方式处理的系统对象(单例)。理想情况下,它应该是一个迭代过程,因此您可以限制要编组的对象的“大”程度。

这有点类似于 Terracotta 所做的,只是我想实现自己的传输和后端,并且我不想使用它们的“增强器”,因为很难将类的包限制为修改,因此它必须在运行时修改我的所有类以防万一,这将非常昂贵。

编辑:严格来说,拥有自己的传输和后端并不是绝对必须的,但是 Terracotta 的服务器是单点故障,我想要一个完全分布式的系统,在那里我可以强制进行最少的复制级别,并且我可以将请求转发到拥有用户会话副本的服务器。

4

1 回答 1

0

虽然这不是我想要的,但我发现至少有一种 Terracotta 的替代品,称为XSTM,它们似乎有类似的概念,同时更“可扩展”。

于 2011-05-01T20:14:17.227 回答