我正在进行一个开放科学项目,以了解药物为什么有效。我们创建了一个名为Hetionet的网络,其中包含47031个节点和2250197个关系。我们正在使用Neo4j,并有一个GraphGist教程展示我们的方法。
我想让任何人与我们的网络互动。Neo4j浏览器提供了我们想要的灵活性和良好的用户界面。因此,我认为的解决方案是设置一个公共Neo4j 3.0社区服务器,设置为:
dbms.security.auth_enabled=false
禁用登录dbms.read_only=true
以防止写入查询- 设置Execution Guard以限制查询运行时
以下是其他注意事项:
- 云托管:我们希望将其托管在云中,以便始终可用。看起来AWS是最便宜的选择
- 可复制性:如果我们能使配置具有可复制性并易于重新部署,那就太好了。从GitHub下载数据库的Neo4j Docker
- 一个致命的功能是链接到或嵌入带有预填充查询的浏览器(请参阅这个未解决的问题)
所以我的问题是:
- 是否会有任何问题阻止托管公共Neo4j实例
- 我在AWS/Docker方面走对了吗
- 在并发使用的情况下,设置会中断吗?假设一次最多打开30个浏览器,并发查询不超过几个
附加说明:
- 请参阅相关问题一和二
- Twitter图形演示提供了类似的功能,但为每个用户创建了一个新的实例
你的想法都是有意义的。
你可以为你的数据集创建一个浏览器指南,例如从你的图表集,类似于:play http://guides.neo4j.com/graphgists
有了这个repo,你可以把asciidoc(像graphgists)变成浏览器指南:https://github.com/jexp/neo4j-guides
李写了一些博客:http://blog.bruggen.com/2016/03/an-easier-better-tastier-beergraphguide.html
自3.0.1以来,甚至有一些方法可以添加一个表单,然后在查询中使用该表单的内容。
您必须在conf/neo4j.conf
的白名单中启用浏览器指南
browser.remote_content_hostname_whitelist=http://host:port
从Neo4j 3.0.1开始,您可以为用户设置:play
URL:
http://host:7474/browser?cmd=play&arg=http://host:port/path/to/guide.html
关于Docker,我的同事Ryan刚刚发布了巴拿马论文的Docker图片,该图片基于他们发布的数据库:https://github.com/ryguyrg/panama-neo4j
附言:也可以通过电子邮件联系我,迈克尔在neo4j
感谢@michael饥饿让我们走上正轨。我们现在在https://neo4j.het.io.
简而言之,我们使用Docker并在DigitalOcean Droplet上托管实例。这是一个更长的讨论,有更多的细节。您也可以查看我们的Docker设置和修改的neo4j.conf
。
到目前为止,我们还没有遇到任何安全或扩展问题。如果我们这样做了,我们将把这些添加到上面提到的讨论中。