@

1. 问题描述

在项目中使用了Greenplum做分析型数据库,Greenplum自身已经提供了高可用方案,Master节点提供Sdanby备用节点,Segment数据节点每个节点都有对应mirro节点。

但是Greenpplum提供的高可用方案,其实是存在缺陷的,就是master节点出现故障后,standby节点是不会自动启动的,需要人工干预(segment数据节点会自动切换),这样就会导致两个问题:

(1)当Greenpplum的Master节点出现故障后,需要人工干预去激活并切换到Standby节点,一般公司是有运维团队的,会通过进程监控并通知相关人员来处理,但是这个过程是需要一定时间的,假如用户在使用,肯定会有所感知的,会影响实际业务。

(2) 最致命的是将主节点切换到Standby节点后,Greenpplum的访问IP发生了变化,这时候连接Greenpplum的Web服务必须修改连接IP才能访问,一般情况下是需要重启应用服务器的,假如连接Greenpplum的是多个系统,并且是以集群的方式部署启动的的,重启的代价可能会很高。

2. 解决方案

2.1 Greenplum架构简单介绍

2.1.1 Greenplum架构图

​ 数据库连接通过Master节点进行访问,跟oracle、mysql、postgre等关系型数据库连接方式一样

2.1.2 Greenplum提供的高可用方案

主节点Master节点有standby备用节点,数据节点segement存在mirrio(一般存储在临近服务器上)。

2.2 使用keepalived+greenplum实现真正的高可用

2.2.1 keepalived+greenplum架构图

2.2.2 架构图解析

(1) 在Greenplum的master节点和standby节点部署keepalive服务,使用keepalive监控greenplum的进程状态和服务可用性;

(2) 采用keeplived的机制,在master和standby 上面生成一个虚拟IP,应用系统配置的连接地址为该虚拟IP地址,当master节点出现故障后,由Keepalived机制来保证切换到standby节点,需要特别注意的是切换到standby节点的时候,需要首先激活Standby节点,这样就解决了greenplum主备节点的无缝切换

2.3 高可用方案存在的问题

该高可用方案是通过比较成熟的keepalived来保证主从节点的切换,弥补了Greenplum本身高可用架构的不足,基本能解决大部分问题,认为是可行的。

但是也存在不足之处,就是假如主节点上的keepalived出现了故障,但是Greenplum服务正常;这时候虚拟IP已经漂移到Standby对应IP节点,但是因为Greenplum的Master服务其实是正常,Standby服务会激活失败,进而导致服务不可用,但是该情况几率较小,后续可以考虑将keepalived进程增加到运维进程监控中。


Greenplum高可用真的高吗?的更多相关文章

  1. 15套java架构师、集群、高可用、高可扩展、高性能、高并发、性能优化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战视频教程

    * { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩展. ...

  2. 15套java架构师、集群、高可用、高可扩 展、高性能、高并发、性能优化Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战视频教程

    * { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩 展 ...

  3. 面试连环炮系列(一):如何保证Redis高可用和高并发

    如何保证Redis高可用和高并发? Redis主从架构,一主多从,可以满足高可用和高并发.出现实例宕机自动进行主备切换,配置读写分离缓解Master读写压力. Redis高可用方案具体怎么实施? 使用 ...

  4. HttpClient客户端网络编程——高可用、高并发

    本文是HttpClient的学习博客,RestTemplate是基于HttpClient的封装,feign可基于HttpClient进行网络通信. 那么作为较底层的客户端网络编程框架,该怎么配置使其能 ...

  5. 七、Hadoop3.3.1 HA 高可用集群QJM (基于Zookeeper,NameNode高可用+Yarn高可用)

    目录 前文 Hadoop3.3.1 HA 高可用集群的搭建 QJM 的 NameNode HA Hadoop HA模式搭建(高可用) 1.集群规划 2.Zookeeper集群搭建: 3.修改Hadoo ...

  6. 使用glusterfs 作为 kubernetes PersistentVolume PersistentVolumeClaim 持久化仓库,高可用Rabbitmq,高可用mysql,高可用redis

    glusterfs 怎么集群,网上一搜铺天盖地的 可利用这个特点做单节点高可用,因为K8S 哪怕节点宕机了 master 会在随意一台节点把挂掉的复活 当然我是在自己的环境下跑,经过网络的gluste ...

  7. SpringCloud高可用和高并发

    1 高可用 什么是高可用:(High Availability)在一个长时间内服务不受影响.通俗的讲就是,一个机器挂掉的时候,有其他机器可以继续提供同样的服务. 如何实现高可用:冗余+自动故障转移.冗 ...

  8. springcloud微服务多节点高性能、高可用、高并发部署

    1. 共有三个服务 discovery服务,domain服务,gateway服务. discovery服务是用来注册其他服务的,作为服务治理用. domain服务是主业务服务. gateway服务是所 ...

  9. (5.1)mysql高可用系列——高可用架构方案概述

    关键词:mysql高可用概述,mysql高可用架构 常用高可用方案 20190918 现在业内常用的MySQL高可用方案有哪些?目前来说,用的比较多的开源方案分内置高可用与外部实现,内置高可用有如下: ...

随机推荐

  1. Java FTP 基本操作

    最近工作中用到了 FTP 相关的操作,所以借此机会了解了下具体内容. FTP基础 关于 FTP 基础推荐阅读<使用 Socket 通信实现 FTP 客户端程序>,其中需要特别注意的是主动模 ...

  2. 图像滤镜艺术---Wave滤镜

    原文:图像滤镜艺术---Wave滤镜 Wave Filter水波滤镜 水波滤镜是通过坐标变换来模拟水波效果,使图像呈现出水波的特效.这个滤镜有一个可调参数:水波的扭曲程度. 代码如下; //     ...

  3. 图像滤镜艺术---(Nostalgla Filter)老照片滤镜

    原文:图像滤镜艺术---(Nostalgla Filter)老照片滤镜 (Nostalgla Filter)老照片滤镜 Nostalgla Filter主要是通过算法来模拟一种复古,陈旧的照片风格,以 ...

  4. 微信小程序把玩(二十一)switch组件

    原文:微信小程序把玩(二十一)switch组件 switch开关组件使用主要属性: wxml <!--switch类型开关--> <view>switch类型开关</vi ...

  5. NBU客户端安装失败

    该服务器是阿里云上的centos6.8,是用来做oracle服务器,买来之后进行测试,发现没有安装图形化界面,还有部分包也没有安装.在oracle安装完成之后,尝试安装NBU的客户端,结果发生报错:T ...

  6. c# 计算字符串和文件的MD5值的方法

    快速使用Romanysoft LAB的技术实现 HTML 开发Mac OS App,并销售到苹果应用商店中.   <HTML开发Mac OS App 视频教程> 土豆网同步更新:http: ...

  7. 使用WebBrowser并调用网页中的JS函数

    在界面上拖入QAxWidget,注意这里不建议直接在UI设计界面指定控件,否则可能引起QtCreator崩溃 建议在代码中动态设置,如: ui->axWidget->setControl( ...

  8. Delphi中取得汉字的首字母(十分巧妙)

    function Tdm.GetHzPy(const AHzStr: string): string;const  ChinaCode: array[0..25, 0..1] of Integer = ...

  9. SpringMVC使用MultipartFile文件上传,多文件上传,带参数上传

    一.配置SpringMVC 二.单文件与多文件上传 三.多文件上传 四.带参数上传 一.配置SpringMVC 在spring.xml中配置: <!-- springmvc文件上传需要配置的节点 ...

  10. MASM 命令行编译方法

    假设有一个t est.asm ,一个test.rc 可以在CMD里这么编译: ml /c /coff test.asm rc test.rc link /subsystem:windows test. ...