背景

谈到负载均衡, 对于数据库集群需要区分几个概念:

  1. 运算的负载均衡, Vertica 本身是 MPP 数据库, SQL 操作自动会利用多台机器来加快处理速度.
  2. 数据库连接的负载均衡, Vertica 和 Teradata 一样都是无主节点的架构, 这种架构允许客户端连接任意一个节点, 连接后将由这个节点负责和客户端交互.
  3. 数据库连接的 Fail over, 这个概念不同于会话 node 的负载均衡. 对于多数数据库, 数据库连接字符串(比如 JDBC)只能设定一个 IP 地址, 如果这个 IP 的节点宕机, 客户端就无法连接. Vertica 允许指定多个 IP 地址, 如果第一个 IP 的节点无法连接, Vertica JDBC driver 会使用其他 IP 尝试连接.

上面这几个特性 Vertica 都支持. 另外 Vertica 是一个纯列式数据库, 没有数据倾斜问题. 因为这些特性, 使用上稍加注意, Vertica 就不太容易出现某个节点成为性能瓶颈.

下面重点讲解如何开启数据库连接的 Load balance 和 Fail over.

Server 端的配置

通过 SET_LOAD_BALANCE_POLICY() 函数设置负载均衡策略, 共有三种, 分别是 NONE/ROUNDROBIN/RANDOM , 这三个设置的含意是很显然的, NONE 是禁用负载均衡, ROUNDROBIN 是轮询, RANDOM 是随机, 推荐使用 ROUNDROBIN 策略. 具体设置代码为:

--设置节点load balance的方法, 有NONE/ROUNDROBIN/RANDOM三种
SELECT SET_LOAD_BALANCE_POLICY('ROUNDROBIN');--查询服务器端的 Load balance 策略
SELECT GET_LOAD_BALANCE_POLICY();

Java代码客户端的配置

下面是一个 JDBC 示例代码, 开启了 Load balance 和 Fail over.


Properties myProp = new Properties();
myProp.put("user", "dbadmin");
myProp.put("password", "vertica");# 开启 connection failover
myProp.put("BackupServerNode", "VerticaHost02,VerticaHost03");# JDBC客户端开启Load balance
myProp.put("ConnectionLoadBalance", 1);
conn = DriverManager.getConnection(
"jdbc:vertica://BadVerticaHost:5433/vmart", myProp);

客户端多连接几次, 并执行下面SQL, 观察 node_name 节点是否不同, 就可以验证负载均衡是否工作,

SELECT node_name,client_version FROM CURRENT_SESSION;

DbVisualizer 工具开启负载平衡

Vertica 查询工具并不多, DbVisualizer 工具是最好的一个, 具体配置:

升级 JDBC driver

DbVisualizer 工具自带的 Vertica jdbc driver 版本太低, 要支持负载均衡, JDBC driver 至少是7.0以上, 推荐使用和服务器版本一致的jdbc, 这里使用的是 vertica-jdbc-8.1.1-0.jar .

在 DbVisualizer 工具菜单 Tool/Driver manager界面中, 选择 Vertica 数据库类型, 删除原有的自带老版本的jdbc driver, 增加新版的driver.

修改已有的 Vertica connection

新建或修改一个Vertica connection, 选择 connection 的 Properties - Driver Properties快捷菜单, 找到 connectionloadbalance, 将它的值设置为 true, 点击 Apply 应用.

验证

客户端多连接几次, 并执行下面SQL, 观察 node_name 节点是否不同.

SELECT node_name,client_version FROM CURRENT_SESSION;

转载于:https://www.cnblogs.com/harrychinese/p/vertica_load_balance.html

Vertica系列: Vertica DB连接负载均衡相关推荐

  1. Spring Cloud 系列之 Netflix Ribbon 负载均衡

    什么是 Ribbon Ribbon 是一个基于 HTTP 和 TCP 的 客服端负载均衡工具,它是基于 Netflix Ribbon 实现的. 它不像 Spring Cloud 服务注册中心.配置中心 ...

  2. 解决k8s中的长连接负载均衡问题

    目录 长连接与短连接: 简介 使用步骤 适用场景 当k8s遇上长连接: 问题描述 解决方案 长连接与短连接: 简介 长连接是指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数 ...

  3. Exchange 2013部署系列之(五)NLB负载均衡

    Exchange 2013部署系列之NLB负载均衡(五) 前面第四篇章介绍了Exchange 2013的数据库的DAG搭建方法,下面我们将对前端CAS服务器进行NLB负载均衡的组建.在Exchange ...

  4. 面试必会系列 - 5.3 LVS负载均衡

    本文已收录至 Github(MD-Notes),若博客中图片模糊或打不开,可以来我的 Github 仓库,包含了完整图文:https://github.com/HanquanHq/MD-Notes,涵 ...

  5. socket 获取回传信息_基于netty框架的socket长连接负载均衡解决方案 oswl

    前言 物联网如今是一个大的趋势,但是概念还比较新颖.大家对这一块的技术积累也比较匮乏,借此前段时间摩拜单车出现了大规模瘫痪的现象.我们今天来讨论一下物联网项目的开发方式. 关于tcp/ip 相关的知识 ...

  6. SpringCloud系列五:Ribbon 负载均衡(Ribbon 基本使用、Ribbon 负载均衡、自定义 Ribbon 配置、禁用 Eureka 实现 Ribbon 调用)...

    声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.概念:Ribbon 负载均衡 2.具体内容 现在所有的服务已经通过了 Eureka 进行了注册,那么使用 Eureka 注册 ...

  7. 基于netty框架的socket长连接负载均衡解决方案

    socket通讯的单机瓶颈 物联网的项目socket使用方式有两种: 短连接的socket请求 维持socket长连接的请求 对于socket短链接来说就好比是http请求,请求服务器,服务器返回数据 ...

  8. Nginx教程系列五:实现负载均衡配置

    文章目录 1. 案例 1.1 环境准备 1.2 实现效果 1.3 修改Nginx配置文件 1.4 测试 2. 负载均衡策略对比 2.1 轮询 2.2 权重 2.3 iphash 2.4 fair 1. ...

  9. linux集群系列(4) --- LVS之负载均衡集群 --- 持久连接

    一.简介 1.1. lvs的持久连接简介 先说说lvs的持久连接能干什么:无论你选择lvs的何种转发策略,如果你想确定来自某一个客户端的所有连接均返回到同一台Real Server,就需要LVS的持久 ...

最新文章

  1. 验证插件——jquery.validate.js
  2. 用verilog实现检测1的个数_入门指南:用Python实现实时目标检测(内附代码)
  3. verilog 8位流水灯_用单片机控制的LED流水灯设计
  4. 表的字段中的值需要替换怎么办?【if 函数,case when函数,中间表思路】
  5. 数据结构——二叉树的最小深度算法
  6. ELF格式解析库之基本数据类型
  7. 极限编程创始人Ron Jeffries建议开发者放弃敏捷
  8. 2017.9.11 聪明的燕姿 失败总结
  9. matlab 怎么使用function,Matlab怎么调用函数 自定义函数使用方法
  10. C++的STL标准库学习(deque)双向队列
  11. 此计算机缺少vc2005_spl_with_atl_fix_redist解决问题
  12. 浏阳市大瑶计算机学校,2021年湖南长沙浏阳市重点小学排名学校一览
  13. 海信电视部分聚系列服务器存在异常,海信液晶电视常见故障及维修
  14. 程序员修炼之道(第2版)
  15. [自制]python批量压缩图像
  16. Ubuntu交叉编译工具链安装
  17. ISM频段ZigBee传输距离的估算
  18. jboot 增加llog4j日志
  19. win10内存占用过高解决方案
  20. android上传图片被旋转,解决android有的手机拍照后上传图片被旋转的问题

热门文章

  1. 深入研究微服务架构——第三部分
  2. 计算机应用与软件修审,国中课室素养导向标准本位评量的设计与应用:以英语科阅读为例...
  3. 台达vfd一ⅴe变频说明书_PLC运动控制实例解析:PLC与变频器系统
  4. 同一路由器下两台电脑ping不通_复杂网络环境下路由器配置问题导致业务故障处理案例分享...
  5. c语言 vscode代码自动补全_借助C/C++ Extension实现VSCode C++代码补全
  6. 白中英 计算机组成原理_白中英《计算机组成原理》(第5版)笔记和课后习题答案详解...
  7. java声明时间为什么类型_JAVA--类的声明周期
  8. log4j 按天打印到文件夹_log4j日志打印到前一天的日志文件中
  9. 代码批量加引号_如何用Word批量制作员工工作证?1分钟搞定1000份!只需三步
  10. 并注册烧写钩子 获取启动介质类型_Spark Application的注册 源码剖析