@

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资深开发工程师/专家-蚂蚁金服保险

    岗位描述: 1.协助业务方梳理业务需求,提供业务规划方案.架构设计方案: 2.负责业务系统的规划设计,制定产品的技术发展路线,完成重要业务模块及核心框架的搭建及编码实现: 3.发现和解决业务系统的技术 ...

  2. AlwaysOn数据同步暂停及回退技术

    随着AlwaysOn技术的流行,关于AlwayOn的问题也越来越多,某企业搭建有三副本的AlwaysOn一套,现想修改主节点上某张表的某个数据,看看会出现什么后果,如果结果正常,就同步到其他节点上:如 ...

  3. Android零基础入门第80节:Intent 属性详解(下)

    上一期学习了Intent的前三个属性,本期接着学习其余四个属性,以及Android系统常用内置组件的启动. 四.Data和Type属性 Data属性通常用于向Action属性提供操作的数据.Data属 ...

  4. Linux C/C++编程手册查阅方法

    Linux Programmer's Manual & User Commands https://www.kernel.org/doc/man-pages/ 搜索框输入epoll调用搜索引擎 ...

  5. 如何配置一个绿色化的 Qt for Windows 开发环境(有.bat脚本,亲测好用) good

    安装 QtCreator for Windows 其实是很简单的,不过,我一向讨厌什么软件都得弄个安装程序,我希望我所安装的这个 Qt 可以是绿色的.便携的,如果无法实现,至少让这个 Qt 可以在新系 ...

  6. FreeCL

    FreeCL 1.03(Free Control Library)是一个开源且免费的Windows控件库,它属于3D图形引擎FreeGE中的一部分,用户可以自由地用于个人或商业开发.FreeCL使用类 ...

  7. BSTR使用误区以及隐藏的内存破坏和内存泄漏

    BSTR使用误区以及隐藏的内存破坏和内存泄漏 作者:magictong 简介 BSTR的数据结构是什么样子并不是本文讨论的问题,但是却是本文的基础.在解决COM的跨平台编程的问题时,需要定义一种通用的 ...

  8. 学习Java,值得你留意的问题(1)更名为《学习Java,容易被你忽略的小细节(1)》

    记得大二快要结束的时候,有个女孩子突然问我“你会Java吗,帮我做大作业好吗?” 实话说,那个女孩真的很漂亮,我当时也非常想帮她.但是我从来没有接触过Java,让我在短短的几天内完成Java程序设计课 ...

  9. redis INFO 解释

    以一种易于解释(parse)且易于阅读的格式,返回关于 Redis 服务器的各种信息和统计数值. 通过给定可选的参数 section ,可以让命令只返回某一部分的信息: server 部分记录了 Re ...

  10. Django预备知识

    http协议 url: 协议://域名(IP)+端口(80)/路径?参数(a=1&b=2) 示例:https://www.baidu.com/s/?wd=aaa MVC M:mdoel 与数据 ...