ProxySQL辅助的PXC集群维护模式

原文:https://www.percona.com/blog/2017/05/31/proxysql-assisted-pxc-maintenance-mode/

作者:Ramesh Sivaraman    


在这篇博文中,我们将介绍PXC 维护模式如何使用ProxySQL 使集群节点下线而不影响工作负载

Percona XtraDB Cluster 维护模式

由于PXC提供了高可用的解决方案,它必须考虑到集群节点需要下线维护的情况(通过与集群隔离或完全关闭)

PXC通过引入维护模式实现这一点。PXC的维护模式减少因为突发故障影响工作负载的次数,如果节点是使用ProxySQL下线的(作为负载均衡器)

中心思想是延迟核心节点的动作,并允许ProxySQL转移工作负载

ProxySQL是如何管理PXC维护模式的

在PXC维护模式下,当用户触发shutdown信号(或者将特定的节点设置为维护模式),ProxySQL将节点标记为OFFLINE

  • 当用户触发了shutdown,PXC节点设置pxc_maint_mode为SHUTDOWN(默认DISABLED)然后sleep x秒(由参数pxc_maint_transition_period决定—默认10s)。ProxySQL 自动检测这个变化并将节点标记为OFFLINE。应用这个改变后,ProxySQL拒绝为任何DML事务建立连接,但已经存在的查询可以继续执行,直到 pxc_maint_transition_period 秒后。一旦休眠期完成,PXC传递一个真正的关闭信号—–从而给了ProxySQL足够的时间转移工作负载

  • 如果用户需要将节点设置为维护模式,可以简单的设置参数pxc_maint_mode 为 MAINTENANCE。随即,pxc_maint_mode 被更新并且客户端连接开始休眠x秒(由 pxc_maint_transition_period 决定)后再把控制权交给用户。ProxySQL 自动检测这个变化并将节点标记为OFFLINE。在这种情况下,ProxySQL避免为任何DML事务建立连接,但已经存在的连接可以继续使用。

  • ProxySQL 自动检测 维护状态的变化并自动重新路由流量,从而减少了突发性的工作负载故障

技术细节:

  • ProxySQL Galera checker 脚本(proxysql_galera_checker)通过使用 ProxySQL 调度程序检查pxc_maint_mode参数状态(除了已经存在的wsrep_local_state),持续检测各个节点的状态。

  • 调度程序 是一个集成在ProxySQL中的像计划任务(cron-like)的实现,支持毫秒的粒度

  • 如果 脚本(proxysql_galera_checker)检测到 pxc_maint_mode = SHUTDOWN | MAINTENANCE,然后proxySQL将节点标记为OFFLINE_SOFT。这样可以避免在这个节点新建立连接(或工作负载)

proxysql_galera_checker 日志示例:

<span >Thu Dec  8 11:21:11 GMT 2016 Enabling config</span>   
<span >Thu Dec  8 11:21:17 GMT 2016 Check server 10:127.0.0.1:25000 , status ONLINE , wsrep_local_state 4</span>    
<span >Thu Dec  8 11:21:17 GMT 2016 Check server 10:127.0.0.1:25100 , status ONLINE , wsrep_local_state 4</span>    
<span >Thu Dec  8 11:21:17 GMT 2016 Check server 10:127.0.0.1:25200 , status ONLINE , wsrep_local_state 4</span>    
<b>Thu Dec  8 11:21:17 GMT 2016 Changing server 10:127.0.0.1:25200 to status OFFLINE_SOFT due to SHUTDOWN</b>    
<span >Thu Dec  8 11:21:17 GMT 2016 Number of writers online: 2 : hostgroup: 10</span>    
<span >Thu Dec  8 11:21:17 GMT 2016 Enabling config</span>    
<span >Thu Dec  8 11:21:22 GMT 2016 Check server 10:127.0.0.1:25000 , status ONLINE , wsrep_local_state 4</span>    
<span >Thu Dec  8 11:21:22 GMT 2016 Check server 10:127.0.0.1:25100 , status ONLINE , wsrep_local_state 4</span>    
<b>Thu Dec  8 11:21:22 GMT 2016 Check server 10:127.0.0.1:25200 , status OFFLINE_SOFT , wsrep_local_state 4</b>

翻译的不好,欢迎批评

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/183024.html

(0)
上一篇 2021年11月2日
下一篇 2021年11月2日

相关推荐

发表回复

登录后才能评论