MySQL运维实战之ProxySQL(9.9)proxysql自身高可用

俊达2年前技术文章1689

proxysql作为一个程序,本身也可能出现故障。部署proxysql的服务器也肯能出现故障。高可用架构的一个基本原则是消除单点。


可以在多个节点上部署proxysql,在proxysql之前再加一层负载均衡(如使用LVS或其他技术),从而消除proxysql的单点。也可以使用keepalived等技术来实现proxysql的高可用


proxysqlha.png


部署多台proxysql后,需要确保多台proxysql的配置同步。不然就可能会引起客户端访问出错。可以使用proxysql自带的集群功能来保证多个节点之间的配置信息同步。

开启proxysql的集群功能,需要:

  • 配置cluster账号,用于查询对比集群内各proxysql节点的配置信息

  • 配置proxysql_servers,将集群内的proxysql节点信息添加到proxysql_servers表

以上操作需要到组成集群的每一个proxysql节点上执行。



配置cluster账号

通过参数admin-cluster_username和admin-cluster_password设置cluster账号。不能使用admin账号作为cluster账号,因为admin账号只能在本地(127.0.0.1)登陆。

同时还需要将cluster账号添加到参数admin-admin_credentials中。


set admin-admin_credentials = 'admin:admin;clusteradmin:passadmin';

set admin-cluster_username='clusteradmin';
set admin-cluster_password='passadmin';

load admin variables to runtime;
save admin variables to disk;



使用proxysql集群

将组成proxysql集群的多个节点的信息添加到proxysql_servers表。

mysql> show create table proxysql_servers\G
*************************** 1. row ***************************
       table: proxysql_servers
Create Table: CREATE TABLE proxysql_servers (
    hostname VARCHAR NOT NULL,
    port INT NOT NULL DEFAULT 6032,
    weight INT CHECK (weight >= 0) NOT NULL DEFAULT 0,
    comment VARCHAR NOT NULL DEFAULT '',
    PRIMARY KEY (hostname, port) )
1 row in set (0.00 sec)

insert into proxysql_servers values('172.16.121.234', 6032, 1, 'proxysql node 1');
insert into proxysql_servers values('172.16.121.236', 6032, 1, 'proxysql node 2');


LOAD PROXYSQL SERVERS TO RUNTIME;
save PROXYSQL SERVERS TO disk;



配置完成后,在其中一个节点修改配置,观察配置是否同步到集群的其他节点。

相关文章

PostgreSQL 会话管理

说明当数据库发生持续的 CPU 使用率打高时,数据库中很可能正在跑一些大查询或者较复杂的 SQL,如果不及时处理很可能会影响到业务,此时我们需要通过查询会话找到 “罪魁祸首” 并 kill 掉它,然后...

ubuntu20.04服务器安全策略设定

ubuntu20.04服务器安全策略设定

密码策略1、经核查,服务器用户身份标识唯一,口令存储在服务器中采用SHA512算法,服务器配置口令复杂度,口令要求8位以上,字母、数字、特殊字符组成,口令180天定期更换。# SHA512算法查看ca...

chengying-4.0登入接口逆向

chengying-4.0登入接口逆向

首先是登入的加密url:http://xxxxx/api/v2/user/login参数1. username:admin@dtstack.com2. password:614bb9438210c69...

更改默认StorageClass

为什么要更改默认StorageClass根据安装方式的不同,你的Kubernetes集群可以使用标记为默认值的现有StorageClass进行部署。然后,这个默认的StorageClass用于动态地为...

CDH时钟同步问题

CDH时钟同步问题

首先执行如下命令:查看chronyd是否启动systemctl status chronyd如果没启动执行如下命令启动systemctl restart chronyd每台检查时间状态chronyc...

Flume使用案例之Flume与Flume之间数据传递(单Flume多Channel、Sink)

目标:使用flume1监控文件变动,flume1将变动内容传递给flume-2,flume-2负责存储到HDFS。同时flume1将变动内容传递给flume-3,flume-3负责输出到local分步...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。