将 Riak KV 用于多租户应用程序

Using Riak KV for Multitenant Applications

当前的 Riak 2.0 API 在 buckets 之前使用类型,因此很难在多租户环境中使用,这意味着多个应用程序访问同一个数据库,其他数据库通过命名空间允许这样做,例如是 Google App Engine 数据存储区,其中每个命名空间彼此完全隔离。

拥有多租户 Riak KV 的最佳解决方法是什么?

我建议使用 bucket-types 作为额外的命名空间 https://www.tiot.jp/riak-docs/riak/kv/2.2.6/using/reference/bucket-types/#buckets-as-namespaces,因为这将允许您为每个租户提供一个命名空间 bucket-type,然后他们可以在该 bucket 类型命名空间内创建 bucket 和键。

为了避免人们在 bucket 类型上钓鱼以查看他们是否可以访问不同租户的数据,您可以通过创建用户并按 bucket 或 bucket 类型授予独占权限来扩展这一点 https://www.tiot.jp/riak-docs/riak/kv/2.2.6/using/security/basics/#managing-permissions

同时使用这两个功能应该可以在同一个 Riak KV 实例中实现多租户环境。