求助双机热备, VIP 的最好的中间件方案。

170 天前
 cencoroll
这两天学习双机热备并且实际操作,但是没研究出来到底什么是比较适合的方案,网上搜出来的方案又太杂.
想请教一下到底哪个方案最好?目前使用的是 keepalived ,有更好的方案选择吗?
服务器上跑的服务中 mysql&redis 只有这两个需要使用 vip 做 ip 漂移!
1898 次点击
所在节点    程序员
21 条回复
vopsoft
170 天前
最好 那当然是买两台 F5 了
njmaojing
170 天前
redis 官方有主从或者集群模式,为啥要 vip ?
0608516518
170 天前
如果特指 VIP ,它底层协议就是 VRRP ,无论是 F5 ,还是硬件路由器、防火墙,都用 VRRP ,所以本质功能没有区别。
linux 下实现 VRRP 的软件就是 keepalived 了。

但对于 Mysql 和 redis ,它双机热备恐怕并不*只*用 VIP 实现的吧?因为这两个服务都是有状态的。
比如两个 mysql 实例,你还得考虑数据同步和一致性的问题。如果想实现高可用,推荐你使用 mysql 的另外的发行版 Percona XtraDB Cluster. 而 Redis 也要部署为 replica 模式。
govictory66
170 天前
目前在用的是 mysql+keepalived ,redis 哨兵
defunct9
170 天前
ucarp,keepalived 太复杂
defunct9
170 天前
更复杂的是 peacemaker+corosync
vopsoft
170 天前
看来这里问道的答案会更杂。 那还是用常有的吧 mysql 用 mha (新版自带 vip ) redis 用集群
anubu
170 天前
整个系统的高可用分多个层面,复杂度主要集中在业务数据层面,各种有状态集群、选主算法、同步算法等等,花活太多了。网络层面就简单多了,一个 VIP 大部分场景都够了,keepalived 简单好用,久经考验。
cheneydog
170 天前
keepalived + docker 方案,部署应该还是比较容易的,基本能用了。
更高的需求就要更严肃的方案了。
cencoroll
170 天前
@njmaojing #2
@0608516518 #3
@vopsoft #7
@anubu #8
可能是我问题描述不够详细,情况是这样的,最近公司整了个活,客户的服务器是双机热备(两台刀片服务器 ip 分别是 xx.xx.xx.2, xx.xx.xx.3 ),部署在客户的内网里,要求就是其中一台一旦出问题了,另一台能平滑切换使用,mysql 用的是 5.7 redis 用的 6.2 。
现在已经配置好了 mysql 双主了,然后 redis 我看了一天网上的教程都是在单机 docker 里使用从库和使用哨兵,那这个 redis 的 vip 到底怎么做到切换呢....mysql 我看 keepalived 可以解决这个问题,那 redis 使用哨兵的话如果集中向外服务提供 vip ?还是用 keepalived 吗?
sunxvvv
170 天前
@cencoroll 引入哨兵就是为了主故障时,自动选主切换,你连接哨兵集群就行
cencoroll
170 天前
@sunxvvv #11 刚刚发现 springboot 后端可以直接连接哨兵了,傻了,浪费了一上午。
WashFreshFresh
170 天前
直接连哨兵,不连 master 或 slave ,由哨兵告诉我目前的 master 。
vopsoft
169 天前
看起来似乎有问题,mysql 双主有人在生产环境用吗?双主如果发生数据不一直以哪个为准呢

“要求就是其中一台一旦出问题了,另一台能平滑切换使用” 那坏的那台恢复了 还需要自动恢复吧

我们的生产环境 mysql 用的 mha 一主多从 也只能切换一次(即发生故障后自动切换,但需要手工恢复)
还有另一套 sql server 用的两台 sql+一套存储的方式
cencoroll
169 天前
不知道是配置有问题还是啥原因,试着手动关闭 redis-master 后无法自主切换,还是尝试重连 master ,试了 10 几次只有一次能切换。我是两边的服务器都需要配置 2 个哨兵吗?不知道是选举出问题还是什么原因。

@vopsoft #14 说实话我自己是想搞集群的,问题是客户就只买了两台服务器。要搞双机热备,MHA 我也研究一下,谢谢
vopsoft
169 天前
redis 不是问题 研究一 jredis 那库怎么连集群就好 只买两台的话 keepalived +脚本 的方式能实现 但不怎么靠谱
vopsoft
169 天前
顺便踩下 mycat 那东西就个垃圾 只作者在自嗨吹
cencoroll
169 天前
@vopsoft #17 细说一下咋了,我还考虑了一下用这个,但我看好就没维护了,而且同事推荐的是 keepalived
vopsoft
169 天前
@cencoroll #18 坑特别多 例如默认 查数据只给返回 120 条 ,需要在 sql 语句中自己写 limit 这东西就不是给人类用的
Vitumoc
169 天前
如果只是切 IP 的话,其实挺简单的,刚好前几天项目需要,随手写了个垃圾工具

https://github.com/vitsumoc/vwinvrrp/tree/main

https://vitsumoc.github.io/%E7%AE%80%E5%8D%95%E5%AE%9E%E7%8E%B0windows%E4%B8%8B%E7%9A%84%E5%BA%94%E7%94%A8%E7%83%AD%E5%A4%87.html

虽然写的很粗糙,但是能用,在客户那测试也通过了。

可以考虑一下?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1055813

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX