文档章节

pgoneproxy的VIP机制

harris2016
 harris2016
发布于 2016/07/15 10:09
字数 463
阅读 20
收藏 1
点赞 0
评论 0

    在向外提供服务时,通常会使用虚拟IP(VIP),增加服务的可靠性。在pgoneproxy中同样提供了vip功能,使用pgoneproxy后就可以省略其他提供VIP的软件(比如keepalive)。

1. vip 的使用    

    在pgoneproxy中需要使用VIP,配置是非常简单的。只需要增加--vip-address=xxx.xxx.xxx.xxx/eth0:0即可。其中xxx.xxx.xxx.xxx 是虚拟IP地址,eth0是网卡接口。eth0:0表示在已经存在的网卡接口eth0上面建立虚拟网卡eth0:0。

    增加配置后,在同网段下的不同主机上面启动pgoneproxy即可。可以通过kill掉正在提供服务的pgoneproxy,VIP会漂移到另外一台pgoneproxy上面去,继续向外提供服务。

2. VIP实现的原理

    1)在启动pgoneproxy时先清理掉自身主机的虚拟网卡信息,可以通过直接调用ifconfig eth0:0 down 或者是通过ioctl来直接~IFF_UP掉eth0:0即可。

    2)读取广播消息,获取正在使用的虚拟ip所在主机的mac地址。

    3)如果虚拟ip mac地址不是本机的mac地址,则禁止设置vip。

    4)ping VIP,如果ping失败,则设置本机为vip主机,并且广播本机mac地址。

通过单独的线程在间隔时间内不断地执行2),3),4)步即可。

3. 防止脑裂的办法

    通过在设置VIP后,把VIP主机的mac地址进行广播。其他主机在设置VIP之前先判断VIP mac地址是否与本地mac一致来决定是否设置VIP还是禁止VIP。这样当多个pgoneproxy同时启动时,会在短暂的震荡(可能有也可能没有,关键看时机,出现这种情况的概率很小)之后,最终会决定出一个主pgoneproxy的。

 

 

© 著作权归作者所有

共有 人打赏支持
harris2016
粉丝 10
博文 52
码字总数 30058
作品 0
杭州
程序员
pgoneproxy 通过vip实现24小时不间断服务

pgoneproxy提供了vip功能来保证能够不间断的对外部提供服务。下面来讲解下pgoneproxy中VIP功能的使用方法。 环境: pgoneproxy主机:172.30.12.10 172.30.12.11 pgoneproxy业务主机:172.30....

harris2016
2016/06/17
81
0
postgresql 数据库 中间件 pgoneproxy

一直在开发postgresql的中间件pgoneproxy,最近增加了pgoneproxy中间件监控功能的界面。通过我们的监控界面可以看到当前连接执行了哪些sql语句,操作了哪些表,事务语句,并且pgoneproxy所在主...

harris2016
2016/06/03
683
7
postgresql 使用jdbc连接过程的分析

本人在开发pgoneproxy的过程中,需要实现前端登录到pgoneproxy,pgoneproxy针对前端进行校验,校验通过后才能使用连接池中的连接,而连接池中的连接是pgoneproxy通过发送数据包的方式进行的连...

harris2016
2016/06/16
166
0
liquibase 通过pgoneproxy来管理数据库版本

最近有客户反应liquibase通过pgoneproxy来管理数据库版本时,发现不能建立数据库表。这让我有点难理解,于是我直接下载了一个liquibase来测试,发现是pgoneproxy的权限管理的问题。现在说说测...

harris2016
2016/06/20
99
0
postgresql 数据库中间件 pgoneproxy 实现冷热数据分离查询(二)

在前一篇《postgresql中间件pgoneproxy支持冷热数据分离查询》中讲解了按照id来进行数据的分离,针对时间至少稍微的提了一下。本篇这专门针对时间来进行讲解和测试下。 在我的数据库中新建了...

harris2016
2016/07/19
178
0
pgoneproxy 增加tps的功能

原来pgoneproxy在处理任务时,无法体现在一段时间内处理任务的数量,故增加了tps的功能。pgoneproxy的tps分成了两部分,一部分是简单查询,另外一部分是事务查询。效果如下所示: 上图中sim...

harris2016
2016/06/14
72
0
关于find_busiest_group函数提现出的Linux性能问题

最近在查一个pgoneproxy的性能问题,发现当pgoneproxy与postgresql数据库部署到一台主机上面的时候,通过perf top可以看到findbusiestgroup函数占有很大的比例,而当pgoneproxy和postgresql部...

harris2016
2016/06/27
212
0
pgoneproxy 主机监控信息的解释

pgoneproxy提供了监控主机性能的功能,本文主要介绍下展示出来的信息的含义以及来源,方便了解pgoneproxy的原理。 下面是pgoneproxy展示的主机信息的界面: 在含义主机信息显示的界面,在加载...

harris2016
2016/06/03
69
0
pgoneproxy在linux 2.6.32-279 与 2.6.32-573版本上面运行的差异

在Linux内核版本2.6.32-279上面运行pgoneproxy时,当有200个客户端的并发时,会出现mutexspinon_owner函数占比很高的情况。而在2.6.32-573内核版本上面却看不到此函数的出现。说明这两个版本...

harris2016
2016/06/27
92
0
postgresql中间件pgoneproxy支持冷热数据分离查询

在某些应用场景中,随着时间的流逝,历史数据很少被访问,主要是访问新产生的数据。这种情况下会把很少访问的数据存储到IO比较慢的存储设备上,而把长期查询的数据存放到IO比较快的存储设备上...

harris2016
2016/07/18
177
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

七、JSP九大内置对象和四个作用域

九大内置对象: request:类型是HttpServletRequest,和Servlet里的HttpServletRequest一模一样。 response:类型是HttpServletResponse,和Servlet里的HttpServletResponse一模一样。JSP里基...

Wakeeee_
5分钟前
0
0
Confluence 6 配置快捷链接

快捷链接提供了提供了一个在 Confluence 中访问从常用资源的快速方法。当你创建一个快捷链接的时候,你需要为你的快捷链接 URL 指派一个 Key,用户可以在 Confluence 中只输入这个 Key 用来替...

honeymose
6分钟前
0
0
我的第一篇博文

网络界的前辈们好。本人从接触网络到你现在也有4、5年的时间了,期间不断的通过网络学习,当然也没少看大牛们给的建议。 2011年的9月份,如愿以偿的上了“大学”,刚上大学就接触到了一门叫做...

yeahlife
32分钟前
0
0
第十四章NFS服务搭建与配置

14.1 NFS介绍 NFS介绍 NFS是Network File System的缩写;这个文件系统是基于网路层面,通过网络层面实现数据同步 NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netap...

Linux学习笔记
37分钟前
0
0
双向认证-nginx

1、设置容器 docker run -it --name nginx-test2 -v /home/nginx:/apps -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro -p 8183:80 -p 7443:443 -d nginx:stable 2、修改nginx配......

hotsmile
38分钟前
0
0
深入了解 Java 自动内存管理机制及性能优化

一图带你看完本文 一、运行时数据区域 首先来看看Java虚拟机所管理的内存包括哪些区域,就像我们要了解一个房子,我们得先知道这个房子大体构造。根据《Java虚拟机规范(Java SE 7 版)》的规...

Java大蜗牛
40分钟前
4
0
SpringBoot | 第六章:常用注解介绍及简单使用

前言 之前几个章节,大部分都是算介绍springboot的一些外围配置,比如日志 配置等。这章节开始,开始总结一些关于springboot的综合开发的知识点。由于SpringBoot本身是基于Spring和SpringMvc...

oKong
41分钟前
9
0
云数据库架构演进与实践

如今,大型企业如金融企业和银行等,在下一代的微服务架构转型要求下,需要基础软件和数据平台能够实现原生的云化,以满足微服务架构的需求。 微服务,也就是一种面向服务的,有特定边界的松...

巨杉数据库
42分钟前
0
0
Linux系统梳理---系统搭建(一):jdk卸载与安装

1.去官网下载符合Linux版本的jdk,暂用jdk-8u171-linux-x64.rpm 2.登陆Linux,进入usr目录,创建java目录(方便管理,可以其他位置):mkdir java 3.上传下载的jdk包至Linux服务器,使用rz指令(sz f...

勤奋的蚂蚁
52分钟前
0
0
Linux Kernel 4.16 系列停止维护,用户应升级至 4.17

知名 Linux 内核维护人员兼开发人员 Greg Kroah-Hartman 近日在发布 4.16.18 版本的同时,宣布这是 4.16 系列的最后一个维护版本,强烈建议用户立即升级至 4.17 系列。 Linux 4.16 于 2018 年...

六库科技
54分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部