更新时间:2024-07-24 GMT+08:00

Doris集群高可用方案概述

支持MySQL协议的客户端通过FE与Doris集群建立连接,为了防止单点故障通常需要部署多个FE节点,并在多个FE上部署负载均衡来实现Doris的高可用。

根据不同业务的使用场景,可以选择如下的方式配置Doris高可用功能:

  • 业务侧代码实现
  • SDK
  • ELB负载均衡

业务侧代码实现

在业务应用层通过代码进行重试和负载均衡,当发现某个连接中断,就自动在其他FE上建立连接进行重试。应用层代码重试需要用户自行配置多个Doris FE节点地址,做侵入式修改。

SDK

服务通过MySQL协议与Doris建立连接,部分语言的SDK已经提供了高可用能力,例如MySQL JDBC可以使用自动重试机制,建立连接时通过如下配置设置数据源:

jdbc:mysql:loadbalance://[host1][:port],[host2][:port][,[host3][:port]]...[/[database]][?propertyName1=propertyValue1[&propertyName2=propertyValue2]...]

详细内容可参考https://dev.mysql.com/doc/connector-j/en/connector-j-usagenotes-j2ee-concepts-managing-load-balanced-connections.html

ELB负载均衡

基于ELB的部署架构,可以将用户访问流量自动均匀分发到多台后端节点,扩展系统对外的服务能力,实现更高水平的应用容错。当其中一台Doris后端节点发生故障时,ELB通过故障转移方式正常对外提供服务,详细操作请参见配置通过ELB访问Doris集群