ssdb双主搭建
一、前言:
我们原本使用了一个单节点的ssdb,刚开始的时候使用都没什么问题,但是几年之后随着业务的增长,业务的QPS也随之增大,代码连接ssdb的时候发现有时候会出现timeout的情况,但是排查的时候发现:
1、报错时间点,服务器资源使用正常,相对无报错的时候稍微高一点,并无太大波动,不至于影响业务。
2、报错时间点服务器网络流量稍微增大了一点,但不大于我们的服务器带宽。不至于影响业务 。
3、报错时间点没有规律。
4、 找了一遍ssdb的配置调优,但是没什么效果。
二、解决:
怀疑是ssdb这个组件本省的QPS的问题。 也就是说ssdb的QPS 就是这么大了,你业务增长之后偶尔QPS超过了ssdb承受的QPS,那多余的QPS只能等待没超过程序的超时设置的话就返回超时了。
所以搭建了一个ssdb的双主,用来承受分担多余的QPS。
建议:ssdb比较耗磁盘空间的,建议使用SSD的数据盘,内存建议大一点的。我们业务还算是比较大的,目前的配置是300G+内存32G不太够用。
三、ssdb双主搭建
机器规划:
192.168.2.201 master-node1
192.168.2.202 master-node2
系统:centos 7.4
1、master1安装
SSDB 主主同步模式部署记录
1)安装SSDB(在两个节点机上安装步骤一样,如下)
2)主主模式配置
master-node1节点上的配置
master-node2节点上的配置
3)启动服务(两节点启动命令一样)
4)数据同步测试
在master-node1节点上写入数据
同理,在master-node2节点上写入数据
以上可以看到无论是在master1还是master2上面写入数据都能正常同步到另外一台master,说明ssdb主主同步环境已经实现!
双主或者主从有一个大坑,大家务必记住:如果要重启其中一个主,必须主要先把业务切走了,否则起来的时候因为另外一个master的频繁写入,导致同步点丢失,无法再恢复同步的状态,这种情况是没有办法解决的。只能重新做双主,就是把你的数据移走,重新恢复双主状态!
如果数据量小还好,如果像我们这种数据量大的,基本是没办法解决的。启动都要加载数据半天。很坑!有钱还是坐redis好。
如果要实现ssdb的监控,可以通过命令的方式去获取对应的监控数据:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义