0

首先是一些背景知识,我们有一个需要存储 json 数据和媒体资产(图像、录制的声音)的应用程序。

在查看 Riak 时,我可以看到现在我们可以使用“普通”Riak,因为我们不处理非常大的文件。

然而,展望未来,我们需要处理更大的文件(专有的二进制测量文件和视频文件),然后 Riak CS 似乎是一个有吸引力的替代方案。

我的问题是:我可以通过什么方式将这两个版本的 Riak 结合起来?

  1. 我可以直接去 Riak CS 并在那里存储 JSON 数据文件吗?
  2. 是否可以从 Riak 开始,然后转移到 Riak CS,但保留来自 Riak 存储后端的数据?
  3. 我可以在同一台服务器(多后端)上同时运行 Riak 和 Riak CS,Riak CS 是否与 Riak 客户端 api 兼容?
  4. 我是否应该将两者分开并部署在两个集群上(最少 10 个节点,5 Riak + 5 Riak CS)?
4

1 回答 1

1

这是1中的4个相关问题!我将避开固执己见的“你应该做什么”,而只是说明什么是可能的。

  1. 是的,您可以在 Riak CS 中存储小文件。但是,这是 Riak 之上的另一层,因此请求可能需要更长的时间。

  2. 是的,可以直接使用 Riak 实例,也可以将 Riak 实例用于 Riak CS。我确信 Riak CS 有一些保留的存储桶名称,但只要您不重叠这些名称,理论上您应该能够将其他数据存储在同一个 Riak 实例中。请注意,尽管 Riak CS 使用的 Riak 存储桶/密钥名称无法正确转换为 JSON,因此通过 HTTP 在 Riak 级别执行的列出操作可能会遇到问题。

  3. 我不认为 API 是兼容的,但理论上你可以再次在同一台服务器上运行 2 个 Riak 实例,只要它们使用不同的节点名称、不同的目录并监听不同的端口。那将是很多文件句柄、内存等,但有可能。

  4. 与一个节点上的多个实例相比,单独的集群可能更容易排除故障。我还怀疑,如果您需要技术支持,这将是这些选项中唯一受支持的选项之一。

于 2014-11-13T14:18:41.273 回答