我正在尝试从由不同 Java 进程处理的多个部分重建信息流。请注意,我不生成流程,我只是阅读了一些关于它们的信息。
我尝试使用 MySQL(MyISAM/InnoDB 表)和 INSERT ON DUPLICATE KEY UPDATE,并为每个流使用一个 id。我还尝试存储所有信息并在最后运行查询以获取完整信息。这些方法都没有产生所需的性能。
我正在寻找一种解决方案,它允许我在多个 Java 进程之间拥有一组共享对象。对象应该在运行之间保持持久性,并且可以快速同时查找/更新(> 100k 查找/更新每秒)。
我想到了一些解决方案,包括:
- NoSQL:像 MongoDB、HBase 等。
- 像 EhCache、Memcached 等缓存解决方案。
问题是我对这些解决方案没有任何经验。那么,您会推荐什么符合以下标准:
- 在单个系统上非常快。我提到的大多数应用程序都是为分布式系统构建的,但这里并非如此。
- 易于学习/使用(我希望能够在一天内制作原型)
- 成熟的技术
- 即使用于商业目的也可以免费使用
- 最好是开源的