【发布时间】:2011-04-10 13:44:37
【问题描述】:
[背景]
我正在开发一个用于信号分析/图像处理的 java 服务器端进程。 主服务器进程将接受来自用户的请求/输入参数(XML/图像)。 然后它将请求/输入分配给多个处理引擎。 处理引擎是用 Java 编写的。他们将执行 JNI 调用以进行图像/信号处理。它们将通过 RMI 进行通信。
同样的请求会再次处理不同的输入参数,输入参数非常大(图片大小:1-2MB)。 我们不想每次都将请求发送到处理引擎。 我们在处理引擎中缓存请求/输入。 JNI 对象是有状态的,并且也保存在处理引擎中。 相同的计算将始终由相同的处理引擎进行计算。
[问题]
我们无法准确预测实时使用情况,工作负载分布不均匀。 由于相同的请求总是通过相同的处理引擎,一些处理引擎可能会过载,而另一些则处于空闲状态。
[要求]
这是我想要实现的目标: - 动态工作负载分配:请求可以由不同的引擎处理。 - 数据的低延迟缓存(大型 XML/Imagine):我们希望使用分布式缓存,而不是通过 RMI 将输入/数据发送到引擎。 - JNI 对象也将存储在分布式缓存中并保持其状态
[问题]
- 是否有适合我要求的 Java 低延迟分布式缓存(尤其是 JNI 对象的缓存)?
- 之前没用过分布式缓存,看的是Terracotta。还有其他推荐吗?
感谢您的任何意见!
【问题讨论】:
标签: java c++ caching distributed