美文网首页
十一 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 连接池

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