Couchbase微服务体系结构

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

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

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

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


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

因此,在同步网关中,您有通道、JSON文档和用户的概念

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

  • 您希望将来将特定的数据子集用于其他
    项目
  • 您可能希望该数据具有一个用于 具体目的
  • 您可能希望保持事情简单,而不希望管理一个非常庞大且复杂的系统 管理所有数据类型的复杂同步功能

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


因此,在同步网关中,您拥有频道、JSON文档和用户的概念

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

  • 您希望将来将特定的数据子集用于其他
    项目
  • 您可能希望该数据具有一个用于 具体目的
  • 您可能希望保持事情简单,而不希望管理一个非常庞大且复杂的系统 管理所有数据类型的复杂同步功能

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