负载均衡
本文介绍如何通过在多个 FE 节点之上部署负载均衡层以实现 StarRocks 的高可用。
通过代码均衡负载
您可以在应用层代码进行重试和负载均衡 (Load Balance)。当特定连接宕机,代码应控制系统自动在其他连接上进行重试。使用该方式,您需要配置多个 StarRocks 前端节点地址。
通过 JDBC Connector 均衡负载
如果您使用 MySQL JDBC Connector 连接 StarRocks,可以通过 JDBC 的自动重试机制进行重试和负载均衡。
jdbc:mysql:loadbalance://[host1][:port],[host2][:port][,[host3][:port]]...[/[database]][?propertyName1=propertyValue1[&propertyName2=propertyValue2]...]
通过 ProxySQL 均衡负载
ProxySQL 是一个灵活强大的 MySQL 代理层,可以实现读写分离,支持 Query 路由、SQL Cache,动态加载配置、故障切换和 SQL 过滤等功能。
StarRocks 的 FE 进程负责接收用户连接和查询请求,其本身是可以横向扩展且可以部署为高可用集群。您需要在多个 FE 节点上架设一层 Proxy 以实现自动的连接负载均衡。
-
安装相关依赖。
yum install -y gnutls perl-DBD-MySQL perl-DBI perl-devel
-
下载并解压 ProxySQL 安装包。
wget https://github.com/sysown/proxysql/releases/download/v2.0.14/proxysql-2.0.14-1-centos7.x86_64.rpm
rpm2cpio proxysql-2.0.14-1-centos7.x86_64.rpm | cpio -ivdm说明:您可以自行选择下载其他版本的 ProxySQL。
-
修改配置 文件 /etc/proxysql.cnf。
修改以下配置项为您有访问权限的目录(绝对路径)。
datadir = "/var/lib/proxysql"
errorlog = "/var/lib/proxysql/proxysql.log" -
启动 ProxySQL。
./usr/bin/proxysql -c ./etc/proxysql.cnf --no-monitor