postgresql 高可用 etcd + patroni 之haproxy+keepalived

HAProxy简介

代理的作用:web缓存(加速)、反向代理、内容路由(根据流量及内容类型等将请求转发至特定服务器)、转码器(将后端服务器的内容压缩后传输给client端)。 缓存的作用:减少冗余内容传输;节省带宽、缓解网络瓶颈;降低了对原始服务器的请求压力,降低了传输延迟。

HAProxy是一种免费的、非常快速且可靠的解决方案,它提供了高可用性、负载平衡和对TCP和基于http的应用程序的代理。它特别适用于非常高的流量网站,多年来,它已经成为事实上的标准的opensource负载平衡器,现在随大多数主流Linux发行版本一起发布,并且经常在云平台上默认部署。

Keepalived简介

keepalived基于vrrp协议,在两台主机之间生成一个虚拟的ip,我们称漂移ip,漂移ip由主服务器承担,一但主服务器宕机,备份服务器就会抢占漂移ip,继续工作,有效的解决了群集中的单点故障,保证haproxy的高可用。

测试

在 etcd+patroni 前加一层 haproxy,让 haproxy 判断 master/slave。

一、安装配置haproxy

安装haproxy : yum install haproxy -y

配置haproxy : # vi /etc/haproxy/haproxy.cfg

二、安装配置keepalived

测试结论

模拟其中一台haproxy服务器宕机,另外一台服务器能够继续对外提供服务,只需利用vip访问即可。