2016-07-20 85 views
2

我读过很多关于每个微服务有数据存储的文章。我将使用这种方法,但希望知道使用Couchbase Sync Gateway的最佳方式,因为我想使用来自移动和后端服务器应用程序的Sync Gateway REST API调用。我在想,最简单的方法是拥有一个Couchbase集群(3-n Couchbase服务器实例),可能有2-3个存储桶。一个会话桶可能,另一个是我的所有数据,也可能是其他一些数据。对于每个微服务的“数据库”而言,我认为我应该将所有数据放在一个存储桶中,并通过文档字段区分数据库和表。所以,也许我会是这样的:Couchbase微服务体系结构

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

    ... 
} 

我也有多个数据库条目都指向我的同步网关配置文件相同的桶每个服务。然后,我需要设置ACL或某种只允许后端服务器应用程序访问自己的数据库的控件(所以''选'api'服务器只能读/写相应的database属性的文档)。这一切都必须通过Sync Gateway进行,至少需要写入(我可能会使用sdks进行大部分读取)。

同步网关对我来说仍然有点混乱,我不确定这是否是最好的方法。我只是将频道用作一种ACL?这只是一个不好的方法开始?有什么建议么?谢谢!

回答

-1

因此,在同步网关你有CHANNELS,JSON Docs & USERS的概念。

在你可能希望在将数据分成不同的部分微服务模式:

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

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