【问题标题】:Sharing a graph database between Microservices在微服务之间共享图形数据库
【发布时间】:2019-01-31 03:29:41
【问题描述】:

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

【问题讨论】:

标签: neo4j microservices graph-databases amazon-neptune


【解决方案1】:

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

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

  1. 在您的集群中添加足够的副本并在您的只读微服务中使用 cluster-ro(读取器)端点。所有微服务都将共享只读副本,但使用 DNS 循环。
  2. 为各种用例添加副本,然后使用特定的实例端点和特定的微服务。微服务不会相互影响,但是,这种方法的一个缺点是,如果发生崩溃,您的实例可能会被提升为 master,这可能是您需要处理或准备好的事情。李>

【讨论】:

    猜你喜欢
    • 2016-07-30
    • 2017-05-29
    • 1970-01-01
    • 2016-08-15
    • 2020-02-21
    • 2017-05-27
    • 2016-11-05
    • 2018-05-01
    • 2017-09-26
    相关资源
    最近更新 更多