在微服务之间共享图形数据库

时间:2018-08-24 15:59:00

标签: neo4j microservices graph-databases amazon-neptune

有没有办法在微服务之间共享neo4j / aws Neptune图数据库,同时将对图数据库特定部分的访问限制为仅特定的微服务?这样是否会对性能产生影响?

1 个答案:

答案 0 :(得分:0)

在Amazon Neptune中,目前无法为部分图表提供ACL。您可以拥有对群集具有完全访问权限或完全没有访问权限的IAM用户。 (全部允许或全部拒绝)。您将需要在应用程序层进行处理。细粒度的访问控制将是一个不错的功能,因此您可能希望为此提出功能请求(例如,通过AWS论坛)。

如果您排除访问控制,并且唯一需要做的就是使微服务不相互影响,那么您可以创建只读副本,并在微服务中使用它们(无论跨微服务共享数据库是是否选择是一个单独的讨论)。有两种方法:

  1. 在集群中添加足够的副本,并在只读微服务中使用cluster-ro(读取器)终结点。所有微服务将共享只读副本,但使用DNS循环。
  2. 为各种用例添加副本,然后将特定的实例端点与特定的微服务一起使用。微服务不会互相影响,但是,这种方法的缺点是,当崩溃时,您的实例可以被提升为主实例,这可能是您需要处理或准备就绪的事情。