2

我已经阅读了很多关于每个微服务都有一个数据存储的文章。我将使用这种方法,但想知道使用 Couchbase Sync Gateway 的最佳方法,因为我想使用来自移动和后端服务器应用程序的 Sync Gateway REST API 调用。我认为解决此问题的最简单方法是拥有一个 Couchbase 集群(3-n Couchbase Server 实例),其中可能有 2-3 个存储桶。一个用于会话的存储桶,另一个用于我所有数据的存储桶,也许稍后还有其他一些存储桶。对于每个微服务的“数据库”,我认为我应该将所有数据放在一个桶中,并通过文档字段区分数据库和表,而不是为每个微服务设置不同的物理集群。所以也许我会有类似的东西:

{
  database: 'person-api'
  doc_type: 'Person'

  ...
}

对于每个服务,我也会有多个数据库条目,它们都指向我的同步网关配置文件中的同一个存储桶。然后我需要设置 ACL 或某种只允许后端服务器应用程序访问自己的数据库的控件(因此“选举 API”服务器只能读取/写入具有相应database属性的文档)。这一切都必须通过同步网关,至少对于写入(我可能会使用 sdks 进行大多数读取)。

同步网关对我来说仍然有点困惑,我不确定这是否是最好的方法。我会使用通道作为一种 ACL 吗?这只是一个糟糕的方法吗?有什么建议么?谢谢!

4

1 回答 1

-1

因此,在 Sync Gateway 中,您拥有 CHANNELS 、 JSON Docs 和 USERS 的概念。

在微服务模型中,您可能希望在以下情况下将数据分成不同的部分:


  • 您希望将来在其他项目中使用特定的数据子集。
  • 您可能希望该数据具有用于特定目的的同步功能。
  • 您可能希望保持简单,并且不想管理一个非常大且复杂的同步功能来管理所有数据类型。

  • 您有非常具体的安全问题。因此,有一个同步网关数据库用于公共信息,另一个用于非常私人/敏感数据。

于 2016-07-25T19:23:02.123 回答