当前位置: 首页 > news >正文

中国国家城乡建设部网站深圳外贸招聘

中国国家城乡建设部网站,深圳外贸招聘,广州市黄埔区建设局网站,公司团建活动期望通过每一次分享#xff0c;让技术的门槛变低#xff0c;落地更容易。 —— around 前言 旨在解决微服务项目全是连接池并影响数据库并发连接#xff0c;作者的环境是基于sprongboot微服务连接postgres数据库#xff0c;每个微服务的DAO层配置都使用了连接池技术。后续… 期望通过每一次分享让技术的门槛变低落地更容易。 —— around 前言 旨在解决微服务项目全是连接池并影响数据库并发连接作者的环境是基于sprongboot微服务连接postgres数据库每个微服务的DAO层配置都使用了连接池技术。后续微服务太多导致连接到一个数据库上默认创建的连接太多整体数据库连接数 微服务数量 x 连接池默认创建连接数量因此在连接池上做处理统一迁移至数据库端同时为以后升级数据集群管理工具准备。 编写文本的最大原因是网上关于pgbouncer的文章质量太差于是个人记录一下踩坑情况与实际解决方案。 作者环境centos7 postgres14 pgbouncer1.18 springboot2.4.5 目录 安装pgbouncer 错误收集 springboot连接pgbouncer 正文 1.安装pgbouncer 使用yum直接安装 yum install pgbouncer -y安装完毕后注意看几个目录是否存在 /etc/pgbouncer/ /var/log/pgbouncer/接着打开pgbouncer.ini文件进行配置修改关注以下几个参数项建议按本文直接设置 vi /etc/pgbouncer/pgbouncer.inibegin [databases] postgres host127.0.0.1 port5432 dbnamepostgreslisten_addr * listen_port 6432# 如果你安装的postgres是低于14版本则使用auth_type md5否则请按我的设置 auth_type scram-sha-256 auth_file /etc/pgbouncer/userlist.txt# 管理账号 admin_users postgres stats_users postgres# 支持session、transaction、statement三种模式不明白去搜索 pool_mode transactionserver_reset_query DISCARD ALL# 是否忽略jdbc连接参数 ignore_startup_parameters extra_float_digitsserver_check_query select 1server_check_delay 30# 最大连接池数量 max_client_conn 400# 默认连接池数量 default_pool_size 36reserve_pool_size 5dns_max_ttl 15修改完毕后直接保存文件接着不要着急启动启动肯定直接失败以下内容就是我启动后造成的错误日志 LOG (nodb)/postgres127.0.0.1:33082 closing because: password authentication failed (age0s) WARNING (nodb)/postgres127.0.0.1:33082 pooler error: password authentication failed下面接着配置连接池与postgres的信任连接既然连接自然需要数据库账号密码了按照上述的配置文件用户应该是在/etc/pgbouncer/userlist.txt中但你肯定找不到这个文件它需要我们自己去创建提供2个方法 使用pgbouncer脚本 cd /etc/pgbouncer到这个目录找到mkauth.py文件直接对这个文件执行命令即可注通过yum安装方式才有依赖环境 # 字符串引号部分空格不要处理填写的内容实际上就是访问你postgres数据库的属性请参考自己的设置修改 /etc/pgbouncer/mkauth.py /etc/pgbouncer/userlist.txt host127.0.0.1 dbnamepostgres port5432 userpostgres passwordpostgres生成完毕后请检查一下自己在/etc/pgbouncer目录下的userlist.txt文件该文件包含你postgres所有的账号信息请调整一下该文件的内容主要是处理空引号的问题 vi /etc/pgbouncer/userlist.txt# old postgres SCRAM-SHA-256$4096:St3x1cVAcTJDsiGEnqjoA # new postgres SCRAM-SHA-256$4096:St3x1cVAcTJDsiGEnqjoA最后请记得给该文件授权一下避免后续缺权限无法使用。 chmod -R 755 /etc/pgbouncer/userlist.txt使用postgres数据库表 在数据库安装的服务器上直接登录数据库 # 请修改成自己的数据库访问地址和账号 psql -p 5432 postgres -h 127.0.0.1 -U postgres# 登录后直接查询pg_shadow获取账号密码信息 select usename, passwd from pg_shadow;对上述查到的数据库账号信息自己直接复制出来不需要全部复制只复制自己希望暴露出来通过pgbouncer方式登录系统的账号。 复制之后的数据直接按照下面的格式创建文件并存储账号密码信息 vi /etc/pgbouncer/userlist.txt# 账号 密码 postgres SCRAM-SHA-256$4096:St3x1cVAcTJDsiGEnqjoA 最后请记得给该文件授权一下避免后续缺权限无法使用。 chmod -R 755 /etc/pgbouncer/userlist.txt接着启动你的数据库吧这里不能使用root启动会导致pgbouncer启动失败。我们执行如下命令 # 切换用户 su - pgbouncer# 启动 pgbouncer -d /etc/pgbouncer/pgbouncer.ini启动完毕后查询pgbouncer状态systemctl status pgbouncer如果显示为下图表示成功。 如果如下图显示则表示出现了问题我们需要针对性检查问题据具体问题详见第二章。 2.错误收集 FATAL PgBouncer should not run as root 说明pgbouncer的启动用户是通过root账号启动的使用yum安装的话直接通过如下操作完成 su - pgbouncer# 启动 pgbouncer -d /etc/pgbouncer/pgbouncer.iniERROR could not open auth_file /etc/pgbouncer/userlist.txt: Permission denied 说明当前pgbouncer的用户文件是没有权限读取的请设置权限 chmod -R 755 /etc/pgbouncer/userlist.txtFATAL unix socket is in use, cannot continue 说明pgbouncer重复启动了需要关闭之前启动的就算启动失败了完成后再次启动 # 查找进程 ps -ef |grep pg# 找到正在启动的进程然后删除掉 kill -9 pid# 上述不可用也能使用此方式 kill cat /var/run/pgbouncer/pgbouncer.pidclosing because: unsupported startup parameter: extra_float_digits2 表示当前用户连接到pgbouncer携带的参数有问题存在jdbc无法连接的问题进入pgbouncer安装所在服务 vi /etc/pgbouncer/pgbouncer.ini# 是否忽略jdbc连接参数 ignore_startup_parameters extra_float_digits# 修改完成后记得重启pgbouncer应该生效了pooler error: unsupported startup parameter: search_path 表示额外携带的参数内容有误这时候建议去自己的代码项目上检查一下datasource连接了 # 原始连接池 url: jdbc:postgresql://ip:端口/数据库?currentSchemapublicuseUnicodetruecharacterEncodingutf8zeroDateTimeBehaviorconvertToNulluseSSLtrueserverTimezoneGMT%2B8stringtypeunspecified# 删除 currentSchemapublic添加prepareThreshold0 url: jdbc:postgresql://ip:端口/数据库?prepareThreshold0useUnicodetruecharacterEncodingutf8zeroDateTimeBehaviorconvertToNulluseSSLtrueserverTimezoneGMT%2B8stringtypeunspecified完成后重启开发环境连接继续去后台查看pgbouncer的实际log输出为如下表示正常 # /var/log/pgbouncer/pgbouncer.log LOG listening on 0.0.0.0:6432 2023-02-27 13:59:45.696 CST [29731] LOG listening on [::]:6432 2023-02-27 13:59:45.696 CST [29731] LOG listening on unix:/tmp/.s.PGSQL.6432ERROR: No such user: postgres 表示进行登录到sql界面的账号不存在需要检查postgresql数据库是否有这个账号且是生效状态 psql: error: connection to server at “127.0.0.1”, port 6432 failed: FATAL: SASL authentication failed 表示进行登录到sql界面的账号密码错误需要检查postgresql数据库对应账号的真实密码 3.springboot连接pgbouncer 请先保证/etc/pgbouncer/pgbouncer.ini的listen_addr能够接到你的ip访问如果不清楚先给listen_addr *以后清楚了再调。 listen_addr *接着直接在springboot项目的yml文件中修改之前的连接池配置同时调整datasource配置如下 spring:datasource:# 例子jdbc:postgresql://192.168.100.10:6432/postgres?prepareThreshold0useUnicodetruecharacterEncodingutf8zeroDateTimeBehaviorconvertToNulluseSSLtrueserverTimezoneGMT%2B8stringtypeunspecifiedurl: jdbc:postgresql://pgbouncer-ip:pgbouncer端口/数据库?prepareThreshold0driverClassName: org.postgresql.Driverusername: postgrespgbouncer中数据库对应的用户名password: postgrespgbouncer中数据库对应的密码最后 本文仅提供关于pgbouncer相关介绍与问题处理方式为后续切换posgresql集群和双master方案做准备预计后续发布Bucardo与Slony-l的方案。
http://www.hkea.cn/news/14541546/

相关文章:

  • 简单网站设计网站怎么能在网上卖货
  • 成都企业网站网络营销外发加工网官网
  • 乐度网上购物网站建设方案一级a做爰片在线网站
  • 青岛无间设计公司网站有做网站的吗 优帮云
  • 温州建站平台简单的企业网站建设教程
  • 建设手机版网站需要主机多少空间网站开发培训那个好
  • seo外链网站大全新网页游戏传奇
  • 个人网站做支付宝收款宁德市教育局官网
  • 佛山从事网站建设伍佰亿书画网网站
  • 阜阳网站制作公司报价seo免费软件
  • 苏州营销网站建设公司网址之家
  • 深圳专业网站建设免费送域名空间手工制作冰墩墩
  • 沈阳网站开发外包注册公司流程和费用 知乎
  • 交通行业门户网站建设的必要性外贸网站建设网站优化
  • 爱站seo综合查询广东省广州市白云区钟落潭镇
  • 网站建设属于技术服务吗如何注销网站备案负责人
  • 电子商务网站规划设计包括哪些方面成都互联网网站建设
  • 广西网站建设公司电话在韶关做网站
  • 兼职网网站建设方案上传图片的网站要怎么做
  • html5flash设计开发|交互设计|网站建设 青岛学习电子商务网站建设与管理感想
  • 建网站的小软件北京的网站建设公司
  • 做网站获取ipwordpress 备份页面
  • 知乎 php网站开发书籍网站开发签呈如何写
  • 网站上的flash怎么做商田科技网站
  • 怎么用阿里云建网站网站变exe文件怎么做
  • 网站全景图怎么做推动高质量发展要坚持
  • 网站建设会议记录深圳住建网
  • 太原网站建设vhuashiwordpress海外支付
  • 成都网站建设设计微信网站案例
  • 昆明学院网站建设与维护试题南昌网站建设方案开发