背景

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

  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. bmaplib vue 调用_Vue-cli3/4中使用AMap、BMap
  2. 金山手机安全卫士试用报告
  3. 光猫直连电脑不能上网_电脑不能上网怎么办?DNS解析失败的解决方法
  4. python用递归方式实现最大公约数_关于python最大递归深度 - 998
  5. 【SVN】版本冲突处理之设置needs-lock:true属性
  6. [css] 使用css3实现一个斑马线的效果
  7. 【Pytorch】nvidia-dali——一种加速数据增强的方法
  8. 夜间灯光数据dn值_一种基于NDBI的城市夜间灯光数据去饱和方法与流程
  9. minitab学习系列(2)--CPK、PPK案例解析
  10. 一张图看懂“火星坐标系”
  11. 光纤传输网的发展及其新的分层结构
  12. 羽枭android,满技能呆枭从变异到成品只需要7本书?这个羽袭自带固神的吗?!...
  13. 奇迹mu选区后就一直显示连接服务器,奇迹mu双开
  14. 安装Hspice2014时仿真键为灰色不可点击和Windows缺依赖项问题的解决方法
  15. 推荐系统通用用户表征预训练研究进展
  16. 由序列确定二叉树:前序序列和中序序列构造二叉树 后序序列和中序序列构造二叉树 层次遍历序列和中序遍历序列构造二叉树 代码实现(c语言)
  17. 香港云服务器比香港服务器更快吗?
  18. 腾讯汤道生:面向数实融合新世界,开发者是最重要的“建筑师”
  19. 破解QQ邮箱下载次数限制
  20. Googlenbsp;Earth中高级使用技巧(二)

热门文章

  1. 完整的 .NET Core 目标框架的预处理器符号列表
  2. 百度万亿流量的转发引擎 BFE 开源了!
  3. orm mysql nodejs_【译】Nodejs最好的ORM
  4. 偏微分方程的正问题和逆问题(inverse problem)
  5. 怎么检测声音频率和幅值_【电缆小课堂】国网天津电缆公司电缆带电检测团队介绍及典型案例分析...
  6. 霍夫变换检测圆c 语言,c++ 霍夫变换检测直线
  7. php中div重叠,div重叠问题
  8. 图层上下_「只要功夫深 不用关键帧」之图层序号的玩法
  9. yum安装ruby_rediscluster安装
  10. war包部署vue_又一干货实战,spring boot2:以 War 包的形式部署