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

俊达2年前技术文章1969

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;



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

相关文章

添加环境变量的两种方式

添加环境变量的两种方式

添加环境变量的几种方式:1.添加当前用户的PATH环境变量,作用范围仅限于当前用户修改用户目录下的 .bashrc修改后立即生效。vim ~/.bashrc2.添加所有用户的PATH环境变量,适用于所...

MapReduce工作机制解析

MapReduce工作机制解析

一、MapTask工作机制主要可以分为Read阶段,Map阶段,Collect阶段,Spill阶段(1)Read阶段:MapTask通过InputFormat获得的RecordReader,从输入In...

Kubernetes节点与令牌管理

令牌管理查看令牌```Plain Text [root@master ~]# kubeadm token list## **删除令牌**Plain Text [root@master ~]# ku...

MongoDB的索引(二)

四、Case Insesitive索引1、语法db.collection.createIndex(  { "key" : 1 }, { collation: {locale : <local...

Debezium部署以及同步之DB2数据到Kafka的同步

Debezium部署以及同步之DB2数据到Kafka的同步

因为Debezium依赖于kafka之上,所以我们先部署kafka和zookeeper(忽略)。1 环境介绍Debezium1.9版本 Db2 11.5版本  附官网:http...

EMR yarn集成Cgroup

EMR yarn集成Cgroup

CGroups(Control Groups)是Linux内核的一个资源隔离功能,限制/隔离/统计进程的资源使用,包括CPU/内存/磁盘IO/网络等资源。YARN中也集成了CGroups的功能,使得N...

发表评论    

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