1

Riak CS为底层的Riak分布式、去中心化数据存储系统实现了 S3 API 。不仅要在每个节点上部署 Riak 数据存储系统,而且还要部署 Riak CS。另一个名为Stanchion的组件必须部署在集群内的单个节点上,以使用户 ID 和存储桶名称在集群内保持唯一。

与在集群中的多个节点上运行的 Riak 和 Riak CS 不同,Riak CS 集群中任何时候都应该只有一个正在运行的 Stanchion 实例。

  • 为什么 Riak CS 部署在集群的所有节点上而不是单个节点上?
  • Riak CS 节点是否相互通信?在riak-cs.conf我看不到任何提示。在这个配置文件里面,只指定了本地主机的地址和Stanchion实例的地址。据我了解,每个 Riak CS 实例仅与其底层的 Riak 数据存储系统侦听器和集群的 Stanchion 实例交互。
  • 将 Riak CS 部署在所有节点上的想法是否只是为了拥有 S3 服务的多个入口点?为了提高可扩展性和可用性?对于小型集群来说,将单个 Riak CS 实例作为单个 S3 API 入口点运行不是更好吗?还是应该在(许多?)Riak CS 实例之前部署负载均衡器以分发传入请求的想法?
4

1 回答 1

2

实际上没有必要在每个 Riak KV 节点上安装 Riak CS。根据最新统计,我们的一个较大的 Riak CS 支持客户只有 20 个 Riak CS 节点,但有超过 300 个 Riak KV 节点。

过于简单化了,Riak CS 本质上是 Riak KV 的独立客户端,提供 S3 接口,而 Stanchion 是确保一切都放在正确位置的协调器。

Riak CS 节点不相互通信。多个 CS 节点的想法是在 Riak CS 节点故障的情况下提供冗余,并在多个客户端同时连接的情况下分担负载。理想情况下,多个 Riak CS 节点前面应该有一个负载均衡器。Haproxy 是最受欢迎的一种。

撰写本文时的最新版本是 Riak CS 2.1.2 和 Stanchion 2.1.2,它们可以从(https://files.tiot.jp/riak/cs/2.1/2.1.2/https:// files.tiot.jp/riak/stanchion/2.1/2.1.2/相应),但我们热切期待今年晚些时候在 OTP 20 和 OTP 22 上发布 Riak CS 3.0

于 2021-05-28T14:09:37.183 回答