• jdbc连接池工具与pg fdw连接的问题


    最近一个项目使用了postgres 的fdw 进行跨库的业务数查询分析,直接使用pg 的client 工具以及直接使用pg的datasource
    实现PGSimpleDataSource测试都是没有问题的

    • pg fdw 使用参考

    因为项目默认使用了alibaba 的druid 连接池工具发现没请求几次就会出现
    问题,现象是后端pg服务就挂了,因为基于容器部署,开启了restart always 选项,会自动重启,刚开始以为是alibaba druid
    的问题,后边尝试了下大名鼎鼎的HikariCP发现问题依旧

    • 排查
      在发现两个大名鼎鼎的连接池工具都有问题之后,发现会不会就是因为fdw的问题引起的,验证方法:
      手工创建表然后测试各种连接池工具(发现没有问题)
      同时查看关于调用的一些日志,发现一些特殊的地方,部分sql 转换有异常出现(使用连接池工具),当出现问题的时候
      pg server会有如下问题
     
     00000: reaping dead processes
    •[36mfdw-db_1  |•[0m 2020-10-14 09:29:11.411 CST [1] 位置:  reaper, postmaster.c:2899
    •[36mfdw-db_1  |•[0m 2020-10-14 09:29:11.411 CST [1] 调试:  00000: 服务器进程 (PID 36) 被信号 11 中断: 段错误
    • 解决方法
      从排查问题的解决,应该就是pg fdw sql 处理上与数据库连接池工具有差异,sql 执行计划,sql 预处理上 ,所以
      暂时的解决方法是直接基于pg 提供的datasouce 进行数据操作,还得需要自己看看sql 的处理看看详细的原因

    参考资料

    https://github.com/brettwooldridge/HikariCP
    https://github.com/alibaba/druid

  • 相关阅读:
    P1093 奖学金
    『模板』快速排序
    [模板]选择排序&&冒泡排序&&插入排序
    CF898A Rounding
    计算细胞数【BFS】
    字符串匹配问题(lfyzoj)
    [HDU]4694 Important Sisters(支配树)
    [BZOJ]4650: [Noi2016]优秀的拆分
    [BZOJ]4908: [BeiJing2017]开车
    [洛谷]P3729 曼哈顿计划EX(最小割树/等价流树)
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/13814203.html
Copyright © 2020-2023  润新知