• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > pgpool的健康检查和failover代码

pgpool的健康检查和failover代码

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了pgpool,pgpool ii,pgpool安装,pgpool 视频,postgresql pgpool等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

pgpool的健康检查和failover代码


健康检查
通过创建到后端的连接实施健康检查

main()  PgpoolMain()    processState = PERFORMING_HEALTH_CHECK;      do_health_check()        make_persistent_db_connection()          discard_persistent_db_connection() 

如果连接创建失败,会抛出异常,进而跳转到统一的异常处理点,如果超过重试次数,将后端降级,并最终调用pgpool.conf配置文件里设置的failover_command。

main()  PgpoolMain()    if(processState == PERFORMING_HEALTH_CHECK)      process_backend_health_check_failure()        degenerate_backend_set(&health_check_node_id,1)          degenerate_backend_set_ex()            register_node_operation_request(NODE_DOWN_REQUEST)              failover()                trigger_failover_command() 

failover()的切换过程

  1. 再次确认后端状态,如无效更新后端的backend_status为CON_DOWN
  2. 获取第一个状态正常的后端作为new_master
  3. kill所有子进程(这是基于pgpool做HA的一个很大的优势,可以可靠的切断所有来自客户端的连接,隔离故障节点)
  4. 对down掉的后端执行pgpool.conf配置文件里设置的failover_command
  5. 如果down掉的是primary,搜索新的primary,即第一个"SELECT pg_is_in_recovery()"返回不是t的后端。
  6. 重启所有子进程
  7. 发送restart通知给worker进程
  8. 通知PCP子进程failover/failback完成
  9. 发送restart通知给pcp进程

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • pgpool的健康检查和failover代码
  • 基于PGPool的1主2从PostgreSQL流复制HA的搭建

相关文章

  • 2017-05-26Service的启动与停止、绑定与解绑,service停止绑定
  • 2017-05-26android:TextView实现文字走马灯效果(欺骗系统获取持久的焦点)
  • 2017-05-26Android Scroll详解(一):基础知识
  • 2017-05-26Android开发学习-view,android开发-view
  • 2017-05-26andriod RadioButton,andriodradiobutton
  • 2017-05-26greendao3.2.3配置时遇到的问题,greendao3.2.3遇到
  • 2017-05-26深入了解Volley如何执行一个Request的流程
  • 2017-05-26Android开发:内存机制分析——堆和栈
  • 2017-05-26Android无线开发的几种常用技术综述
  • 2017-05-26做了5年软件测试了,写写心得

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • andriod打开摄像头和打开相册,andriod摄像头相册
    • Ionic2/angularJs2中的静态类 PhotoLibrary 调用不上,ionic2angularjs2
    • My First Android Application Project 第一个安卓应用,android安卓
    • zabbix 应用系列之nginx tcp stream监控
    • 使用 Diagwait 作为诊断工具,获取用于诊断 Oracle Clusterware 节点驱逐
    • Linux主机网络流量监控ifstat
    • Android中的多线程断点下载,android断点下载
    • 改变RadioButton的文字位置以及距离,radiobutton文字
    • Android动态部署五:如何从插件apk中启动Service
    • 关于安卓APP的启动界面,安卓APP启动界面

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有