部署了三套neo4j集群,有一套上面总是出现写入超时,最长要接近一分钟,结果前端超时。
使用了几种方案尝试解决:

1、尝试减少事务数量

原实现中事务使用过多,很多不重要的查询也使用事务
把大部分的命令执行由session.WriteTransaction修改为session.Run

2、尝试创建索引

对于数据的查找,如果没有创建索引就会执行遍历,数据量大的话会比较慢(我的环境中数据量很小)

CREATE INDEX [INDEX_NAME] FOR (n:Label) ON (n.property)

3、执行命令前增加verify

这个完全没有想到,在一个环境上打开neo4j客户端log后发现执行命令前会提示已断链,估计是被老化了。

打开neo4j log的方法(go客户端):

  type gdbcLogger struct {}func (l *gdbcLogger) Error(name string, id string, err error) {log.Errorf("[neo4j] name[%s] id[%s] err[%s]", name, id, err)
}func (l *gdbcLogger) Warnf(name string, id string, msg string, args ...interface{}) {log.WithFields(log.Fields{"name": name, "id": id}).Warnf(msg, args...)
}func (l *gdbcLogger) Infof(name string, id string, msg string, args ...interface{}) {log.Infof("[neo4j] name[%s] id[%s]", name, id)log.WithFields(log.Fields{"name": name, "id": id}).Infof(msg, args...)
}func (l *gdbcLogger) Debugf(name string, id string, msg string, args ...interface{}) {log.WithFields(log.Fields{"name": name, "id": id}).Debugf(msg, args...)
}func gdbcConfig(conf *neo4j.Config) {conf.Log = &gdbcLogger{}
}func (gdbc *GraphDB) connectToGraphDB(url string, user string, passwd string) {var err errorgdbc.Neo4jDriver, err = neo4j.NewDriver(url, neo4j.BasicAuth(user, passwd, ""), gdbcConfig)// todo change to backofffor err != nil {。。。。}。。。。。。
}

增加verify(做了优化,如果是2s内verify过则不重新执行)(go客户端):

func (gdbc *GraphDB) verfiyNeo4jConnection() bool {if gdbc.Status == StatusRunning {log.Debug("Neo4j StatusRunning")return true}var err errorfor i := 0; i < 3; i++ {err = gdbc.Neo4jDriver.VerifyConnectivity()if err != nil {log.Errorf("Neo4j driver VerifyConnectivity failed(%v)", err)} else {break}}go func() {<-time.After(2 * time.Second)log.Debug("Neo4j set StatusUnkown")gdbc.Status = StatusUnkown}()if err != nil {log.Debug("Neo4j set StatusFail")gdbc.Status = StatusFailreturn false} else {log.Debug("Neo4j set StatusRunning")gdbc.Status = StatusRunningreturn true}
}

在措施1、2都没生效的情况下,措施3生效了,基本不再超时了。

neo4j写入时间长问题解决相关推荐

  1. ubuntu关机时间长问题解决

    有时候我们总能遇到ubuntu关机的时候卡住,无法关机,一查看发现是" a stop job is running..." 然后后面接着一串等待时间. 这时候我们需要修改一下sys ...

  2. JavaCV1.5.3版本FFmpegFrameGrabber初始化的时候加载时间长的解决方法

    JavaCV1.5.3版本FFmpegFrameGrabber初始化的时候加载时间长的解决方法 问题描述 问题分析 解决方法 项目码云(Gitee)地址:https://gitee.com/banma ...

  3. MasterAlign对位时间长异常处理

    一.问题描述 最终呈现效果为:对位时间长. 二.问题分析: Fig.1 影响MasterAlign对位时间因素 2.1机构问题 上料偏差大 可以把视觉拍照延迟设置500ms以上(为了便于观察,可以将延 ...

  4. 分片提升容量难度大,时间长,故而Vitalik提出使用BCH或者ETC作为以太坊数据层

    7月25日晚,莱比特矿池CEO江卓尔在巴比特在线直播节目She Knows中表示,分布式系统(去中心化系统)有一个不可能三角,称为分布式系统CAP定理,指的是在一个分布式系统中,Consistency ...

  5. android 系统(162)---O版本的Camera Startup time比N版本时间长

    O版本的Camera Startup time比N版本时间长 从N版本升级到O版本后,Camera Startup time 增加大约100ms. N 版本log: 12304 01-06 13:39 ...

  6. iframe中src参数过长问题解决

    iframe中src参数过长问题解决 参考文章: (1)iframe中src参数过长问题解决 (2)https://www.cnblogs.com/pengfei25/articles/7473503 ...

  7. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了.可能是电脑出了别的问题了,来看看教程的说法. 正在准备配置w ...

  8. GC日志中sys时间比user时间长该如何处理?

    原文在这里: GC日志中sys时间比user时间长该如何处理? GC日志中会详细的记录每一次GC事件所花费的时间信息,每一个GC事件所花费的时间都会以'user'.'sys'.'real'3个维度来记 ...

  9. 鸿蒙系统一直重启怎么办,我的电脑能开机随后就是进不了系统一直黑在那边,时间长了就自动重启...

    一般自动重启有两种,一个是关机前的操作卡了引起的,另一个是每回关机都是重启,下面分别说一下. 1)关机前的操作引起的: 玩游戏.看视频.或操作大程序.或电脑用的时间长了,这时是很卡的,你要有一些耐心等 ...

最新文章

  1. 数 学 专 业 劝 退 指 南
  2. 第二十四课:能量和功率
  3. ajax img标签,如何将属性添加到img标签以用于ajax调用
  4. C# 按部门拆分excel文件
  5. 错误: 找不到或无法加载主类 org.apache.hadoop.hbase.util.GetJavaProperty
  6. Linux进程全解4——fork创建子进程
  7. 6.dubbo常用的xml配置有哪些_【面试篇】必须掌握的Spring 常用注解
  8. 数据库SQL命令经典面试题65道
  9. Linux查看负载相关命令
  10. 页面分享怎么知道通过哪条链接进来的_亚马逊Coupon怎么设置?亚马逊Coupon对获取流量有哪些帮助?...
  11. C++高级教程之多线程
  12. as常用固定搭配_人民日报整理:英语常用介词固定搭配,太实用了!
  13. Atitit 前端性能提升方案 目录 1. 优化分类 2 1.1. ,第一类是页面级别的优化, 2 1.2. 第二类则是代码级别的优化, 2 1.3. 前端性能优化的七大手段,包括减少请求数量、减小
  14. Golang、python中的一个异或加密算法,用来加密字符串。
  15. python UI自动化(一)
  16. PHP沉思录(转载)
  17. springboot 整合redis配置文件
  18. Auto 3dmax安装资源
  19. 笔记本电脑频繁自动重启_电脑为何总是自动重启 电脑自动重启原因【解决方法】...
  20. 华为asph是什么型号_华为triple camera这是什么型号

热门文章

  1. 【180730】21点游戏源码
  2. 电子墨水屏待办清单及日历
  3. photon server服务器搭建
  4. Windows 常见文件扩展名和说明
  5. 发力新零售,瓜子二手车严选直卖店落地武汉 1
  6. 基于树莓派的电机倒立摆控制系统开发
  7. Linux命令大全【整理汇集】
  8. Unity窗口分辨率调整
  9. The meaning of Bill Gates
  10. Send A Tweet