关于neo4j 超过千万节点的 性能问题
楼主今年在电力行业的项目中应用了neo4j,但是高并发的问题没有解决,只好部署成单机 前半年用的neo4j2.0版本的。用的spring-data-neo4j。 主要操作如下: 1.读取neo4j里面的拓扑节点(按级次遍历),大致每次读出来大概150个节点,层级大致30层级以内 2.对拿出来的节点,进行打断关系重新连接,或修改属性值 3.把修改好的节点和关系再保存进去 这个过程(都加入了事务控制),虽然计算量有点多,所以想来咨询一下, 这个过程一开始到结束,cpu都高居不下,内存还好。 cpu高居不下后,并发就卡死,各种报错。也就不到20个并发。 求高手解惑,因为新项目也要用neo4j,而且数据量在2000W,要求并发 至少能达到100吧
3 回复
方案一: 购买企业版,搭建集群。社区版不适合用在生产环境 方案二:在业务逻辑上拆分数据,分别放在运行在不同电脑上的neo4j实例上(如果业务逻辑上无法拆分,就不要考虑了) 方案三:使用亚马逊云等云平台的neo4j 托管,就是运行在aws云上的neo4j实例,这个不用考虑性能问题,肯花钱绝对性能妥妥的,aws上使用neo4j :https://neo4j.com/blog/neo4j-hosting-aws-graphenedb/?utm_source=tuicool&utm_medium=referral 方案四:创建索引,等数据库优化