美文网首页
十一 hugegraph+cassandra 连接池

十一 hugegraph+cassandra 连接池

作者: NazgulSun | 来源:发表于2020-01-14 13:36 被阅读0次

场景

hugegraph 使用一段时间后,与 cassandra 的 tcp 连接一直在增加。
使用 nestat -ano |Grep 9042, 可以达到1000左右。
慢慢的就会抛出, pool busy exceptin

cassandra 连接池的使用

hugegraph 使用线程级别复用 session。
每个session 使用默认的连接池配置,也就是一个 session- > 1 pool-> 1 host
每个pool 里面 默认只开一个 connection。

所以按道理来说, 有多少线程,就有多少个 session,也就是多少个 connection。

那么拿到有1000个线程?

hugegraph 的线程池

有两个, 1 一个是 rest server,一个是 gremlin-server

两个都是使用 fixHtreadPool,并且coresize = maxsize。
也就是说如果没有意外,这两个线程池都是固定不变的。
默认是 2cpu。
也就是最多4
cpu 个线程,推导出 最多 4* cpu 个 session才对。

观察到的现象与我们连接的数据不一样,不知道为什么?

我们通过jstack 看到 有大量 cluster-1-12 ,按到里应该没有这么多才对的。
应该是 某个隐蔽的地方存在线程泄漏,或者是 消费,新建。

问题复现

我们对于每个请求都新开一个session,在压测的时候,就能够快速的进入 poolbusyexception。
也就是说无法获得新的连接,所以还是怀疑, 建立了太多的session导致了问题。

当我把session复用起来,一个keyspace 一个session的时候再也没出现过这个问题。

相关文章

  • 十一 hugegraph+cassandra 连接池

    场景 hugegraph 使用一段时间后,与 cassandra 的 tcp 连接一直在增加。使用 nestat ...

  • 撩课-JavaWeb之什么是连接池与连接池使用

    什么是连接池 没有连接池的情况 数据库连接池 池 连接池 作用 数据库连接池 示意图 连接池中的属性 连接池使用 ...

  • 代码分析

    interface 相关配置 默认子连接池 定义全局连接池 注册连接池 默认子连接池 连接

  • JDBC 进阶——连接池

    本文包括传统JDBC的缺点连接池原理自定义连接池开源数据库连接池DBCP连接池C3P0连接池Tomcat内置连接池...

  • SSM框架mybatis深入了解(二)

    一、mybatis中的连接池及事务控制 1.mybatis中的连接池使用及分析 1.1 连接池简介连接池是创建和...

  • JDBC进阶学习笔记

    JDBC进阶 JDBC连接池 1. 常见的JDBC连接池 c3p0 开源连接池 druid 阿里的开源数据库连接池...

  • Druid连接池

    第一章 连接池 一.1. 遇到的问题-引出连接池 | | 一.2. 连接池思想 | | 一.3. 连接池的概述 一...

  • JAEE学习笔记(19)事物与连接池

    目录 1.事务2.连接池 1.连接池概念 2.自定义连接池 3.开源连接池(c3p0) 复习: =========...

  • Redis连接池的使用

    1 . 安装 2 . 注册 redis 连接池 使用连接池

  • DBUtiles的使用

    自定义连接池: 学会用resourcebundle来加载properties文件 运用连接池的技术 连接池技术原理...

网友评论

      本文标题:十一 hugegraph+cassandra 连接池

      本文链接:https://www.haomeiwen.com/subject/rmtaactx.html