我已经阅读了很多关于每个微服务都有一个数据存储的文章。我将使用这种方法,但想知道使用 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 吗?这只是一个糟糕的方法吗?有什么建议么?谢谢!