生产环境中,可以一个域名绑定多个ip轮询访问,比keepalived好用多了,后端的话有eureka之类的,所以在生产环境中根本用不到。
因此,这个就是自己玩的,但是keepalived解决问题的思路我很欣赏。

keepalived只支持两台机器主备。
vip就是keepalived的虚拟ip,抽象的看,可以理解是虚拟网关
主备之间互相进行心跳检测,默认设置主机挂vip,主机死了,备机可以检测到,备机就挂vip。
同时,在机器上让keepalived对nginx进程进行心跳检测,死了就拉起来,拉不起来就把自己干死。vip就自动挂到备机上了。高可用嘛,死了接着用。
下面用docker玩一下
docker pull osixia/keepalived
docker run -d --rm -v /keepalived/conf/keepalived.conf:/container/service/keepalived/assets/keepalived.conf --name keepalived osixia/keepalived
vi /container/service/keepalived/assets/keepalived.conf
global_defs {
default_interface eth0
}
vrrp_script chk_http_port {
script "xxx.sh" # 执行脚本,在这里检测nginx死没死,死了拉起来,拉不起来就干死自己
interval 2 # 心跳
weight 2
}
vrrp_instance VI_1 {
state MASTER # 主 MASTER 备 BACKUP
interface eth0
virtual_router_id 51 # 主备机一致
priority 150 # 值大的挂vip
advert_int 1
virtual_ipaddress {
192.168.52.200
}
authentication {
auth_type PASS
auth_pass d0cker
}
notify "/container/service/keepalived/assets/notify.sh"
}
在设置一个备机就ojbk了
本文介绍了在生产环境中,虽然多IP轮询和注册服务(eureka)等方式更常见,但作者仍对keepalived的高可用解决方案表示赞赏。keepalived支持两台机器的主备切换,通过VIP(虚拟IP)实现负载均衡。当主机宕机时,备机能够快速接管VIP,保持服务不间断。同时,keepalived会监控nginx进程,确保其稳定运行。作者通过docker容器来演示如何配置和测试这种高可用方案。

3148

被折叠的 条评论
为什么被折叠?



