Совместное использование базы данных графа между микросервисами

Есть ли способ поделиться базой данных графа neo4j/aws Neptune между микросервисами, ограничивая доступ к определенным частям базы данных графа только определенным микросервисом? Будет ли при этом какое-либо влияние на производительность?


person user1179    schedule 24.08.2018    source источник
comment
Вы не должны делиться им, см. stackoverflow.com/a/43427397/2575224   -  person Constantin Galbenu    schedule 24.08.2018
comment
Пожалуйста, смотрите ответ ниже и дайте мне знать, если вам нужно что-то еще по этому вопросу.   -  person The-Big-K    schedule 24.10.2018


Ответы (1)


В Amazon Neptune на данный момент нет возможности использовать ACL для части графа. У вас могут быть пользователи IAM, которые имеют полный доступ к кластеру или вообще не имеют доступа. (Разрешить все или запретить все). Вам нужно будет справиться с этим на прикладном уровне. Было бы неплохо иметь детальный контроль доступа, поэтому вы можете разместить запрос на эту функцию (например, через форумы AWS).

Если вы исключаете контроль доступа и единственное, что вам нужно, это сделать так, чтобы микросервисы не влияли друг на друга, тогда вы можете создавать реплики чтения и использовать их в своих микросервисах (независимо от того, является ли общий доступ к базе данных между микросервисами хорошим выбором или не является отдельным обсуждением). Есть два подхода:

  1. Добавьте достаточное количество реплик в свой кластер и используйте конечные точки cluster-ro (reader) в своих микрослужбах только для чтения. Все микросервисы будут совместно использовать реплики чтения, но с циклическим перебором DNS.
  2. Добавьте реплики для различных вариантов использования, а затем используйте определенные конечные точки экземпляра с определенными микрослужбами. Микросервисы не будут влиять друг на друга, однако недостатком этого подхода будет то, что ваш экземпляр может быть повышен до мастера в случае сбоев, и это может быть чем-то, что вам нужно обработать или быть готовым к этому.
person The-Big-K    schedule 27.08.2018