clickhouse-jdbc代码优化实现无感知故障转移及负载均衡
clickhouse数据库一直以单点功能强悍而闻名,在单点性能上,无人出其右。但是也需要指出的是,clickhouse集群的集群管理功能却是非常薄弱的。比如说无集群统一管理功能、无集群统一读写接口,仅依靠分布式表和副本表,实现了多节点之间数据的副本和分片。
现阶段,clickhouse数据库集群最大的问题就是负载均衡和单点故障问题。
目前常见的clickhouse使用方案都存在各种各样的问题,比如依赖分布式表进行数据读写存在单点故障问题和数据一致性问题、分布式表查而本地副本表写存在单点故障和负载均衡问题等等。
为了解决这些问题,现在常见的方案主要是lvs/nginx+keepalived,但是当故障主备切换时,依然存在连接失败的情况。因此,我这里针对clickhouse数据库的jdbc驱动做了优化修改,使数据库连接的url支持多服务器,同时采用随机的方式连接服务器并实现了无感知的故障转移功能。
目前主要优化的方法包括
- url支持多服务器配置;
- executeBatch(),executeUpdate(),executeQuery(),execute();
其它方法暂未调整,请注意。
下载地址:
链接:https://pan.baidu.com/s/1pAa9CiyL1nZqvlGUj2pv6Q 密码:x9dz