25

我从未使用过分布式缓存/DHT,如 memcached、jboss 缓存、ehcache 等。我想知道哪个(如果有)适合我使用。

首先,我没有做 Web 应用程序(因为这些项目中的大多数似乎都面向 Web 应用程序)。我为金融交易公司编写服务器(实际上是订单管理系统)。服务器本身并不太复杂。他们需要接收信息(市场数据、订单、执行等),然后将它们发送到目的地,同时可能会转换其中的一些信息。

我正在寻找这些产品来解决以下问题:

  • 服务器状态的安全存储库。我宁愿将我的应用程序的逻辑构建为一堆转换器(类似于 Apache Camel)并将状态存储在“安全”的地方

  • 这个存储库应该是分布式的:万一这些数据存储中的一个崩溃,应该再增加一两个,我应该能够无缝切换到它们

  • 这个存储库应该很快。单位毫秒计算在这里,换句话说,消费/处理这些数据的系统是自动化系统,而不是人类点击链接。该系统需要具有高吞吐量低延迟。通过将我的数据发送到进程之外,我必然会降低性能,但我试图平衡绝对原始速度和数据的绝对保护。

  • 这个存储库应该是安全的。类似于关于几个在线备份的观点,这个系统需要将数据写入磁盘(可能不止一个磁盘)。

我真的很想停止编写自己的“事务服务器”。我是否正确地研究诸如 jboss 缓存、ehcache 等项目?

谢谢

4

7 回答 7

10

Hazelcast是用于 Java 的开源、事务性、分布式缓存解决方案。非常适合金融应用。它是在 Apache 许可下发布的。

Hazelcast 实际上不仅仅是一个分布式缓存。它是 Java 的队列、主题、地图、多地图、锁、执行器服务的分布式实现。

于 2010-05-02T22:46:20.943 回答
5

许多金融机构为此使用 Oracle Coherence。

但是,它不会匹配您列表中的所有点。

于 2009-03-16T06:37:24.003 回答
4

我相信,JBoss Cache足以满足您的目的:

  • 快速地
  • 分散式
  • 具有 MVCC 实现的事务性(无读锁定)
  • 支持 JTA
  • 支持异步模式
  • 将数据逐出到持久存储(jdbc、bdb 等)
于 2009-03-16T07:37:12.720 回答
4

您在这里有一些很好的免费解决方案。但是,如果您需要更快的解决方案,您可以尝试29 WestSolace,它们具有低于 100 微秒延迟的可靠/有保证的消息传递解决方案。

于 2010-05-03T08:43:25.133 回答
3

看看Gemfire它在内存数据网格中的高性能。它提供分布式缓存、对象查询和事件通知。

于 2011-06-28T14:05:37.467 回答
2

看看Cacheonix 分布式缓存和数据网格。它通过提供一致的本地缓存并将缓存的数据分发到多个服务器以及复制缓存的数据来满足您对低延迟和可靠性的要求。全面披露:我为 Cacheonix 工作。

于 2011-12-15T00:10:50.550 回答
-2

由于以下原因,我会建议使用NCache ,

  • 支持 .NET 和 java
  • 广泛的拓扑结构
  • 无需更改代码
  • 高度分布式和可扩展性
  • 完全免费(NCache Express)
于 2010-05-06T06:30:19.977 回答