Redis开发运维实践高可用和集群架构与实践(二)
2023-09-11 14:15:59 时间
11.1.2.1 部署架构
11.1.2.4 持久化规划
国王小组:国际多语言交易所搭建|如何选择开发架构风格 DDD为复杂软件的设计提供了指导思想,其将易发生变化的业务核心域放置在限定上下文中,在确保核心域一致性和内聚性的基础上,DDD可以被多种语言和多种技术框架实现,具体的框架实现需要根据实际的业务场景和需求来制定。
部署架构上采用三台机器,一个Master接受写请求,两个Slave进行数据同步,三台机器上都部署sentinel(一般为奇数个,因为需要绝大部分进行投票才能failover)。(官方示例)具体架构如下图:
注意:如果有条件可以将sentinel多部署几个在客户端所在的应用服务器上,而不是与从节点部署在一起,这样避免整机宕机后sentinel和slave都减少而导致的切换选举sentinel无法超过半数。
11.1.2.2 网络规划redis高可用环境不需要进行心跳线的配置,每个物理节点的网卡进行双网卡主备绑定生成bond0即可。
11.1.2.3 用户规划11.1.2.4 持久化规划
如果读多写少,可以在master上只开启aof,在低峰期定时进行bgsave,在slave上彻底关闭持久化。 如果读写差不多,可以在一个slave上开启rdb(这个slave只做持久化,不进行读操作),在其余主从都关闭持久化。 注意:从节点是不会从本地恢复而直接从master节点进行恢复的,因此在重启前如果有需要备份从节点,则需要把aof和rdb文件移走。
11.1.2.5 目录规划解压下列压缩包至/tmp/redis目录,以符合上述目录结构:
部署相关组件: cd /tmp/redis/deploy ./deploy.sh
修改Master配置文件redis.conf,注释掉包含slaveof的语句。 修改Slave配置文件redis.conf,添加slaveof masterIP port,指定主从 修改三台机器的sentinel配置文件,指定主服务器的IP和端口: sentinel monitor mymaster masterIP port 2
然后使用supervisord重新启动。
11.1.2.7 配置文件首先,一个sentinel可以配置多个master。一个master的配置如下:
port 26379 ###定义目录存放 dir "/redis" ###监控mymaster(可自定义-但只能包括A-z 0-9和”._-”),注意quorum只影响ODOWN的判断,但是不影响failover,发生failover的条件必须是半数sentinel认为老Master已经ODOWN。此参数建议设置为sentinel/2+1的数值,否则可能会产生脑裂。 sentinel monitor mymaster 192.168.145.131 6379 2 ###mymaster多久不响应认为SDOWN,设置为3100也就是说3次ping失败后认为SDOWN sentinel down-after-milliseconds mymaster 3100 ###如果在该时间(ms)内未能完成failover操作,则认为该failover失败 sentinel failover-timeout mymaster 15000 ###在执行故障转移时, 最多可以有多少个从Redis实例在同步新的主实例, 在从Redis实例较多的情况下这个数字越小,同步的时间越长,完成故障转移所需的时间就越长 sentinel parallel-syncs mymaster 1 ###reconfig的时候执行的脚本(选配) sentinel client-reconfig-script mymaster /redis/script/failover.sh ###出现任何sentinel在warning事件时候执行的脚本(选配) sentinel notification-script mymaster /redis/script/notify.sh ####日志位置 logfile "/redis/log/sentinel.log"本文为《Redis开发运维实践指南》内容,该书作者为黄鹏程,已授权云栖社区转载。
国王小组:国际多语言交易所搭建|如何选择开发架构风格 DDD为复杂软件的设计提供了指导思想,其将易发生变化的业务核心域放置在限定上下文中,在确保核心域一致性和内聚性的基础上,DDD可以被多种语言和多种技术框架实现,具体的框架实现需要根据实际的业务场景和需求来制定。
相关文章
- redis实战笔记(5)-第5章 使用 Redis构建支持程序
- Redis Cluster 原理与实战- 图解- 秒懂
- Redis 集群架构 (史上最全)
- 各种redis的介绍:ServiceStack.Redis,StackExchange.Redis,CSRedis
- redis安装与使用(windows端)+Redis设置Auth认证保护+redis的管理工具:Redis Desktop Manager
- PHP使用Redis保存用户会话Session
- dubbo+zookeeper+springmvc+mybatis+shiro+redis分布式大型互联网企业架构
- Redis——redis的rdb和aof持久化
- redis使用CacheCloud搭建(Redis云平台)搭建集群监控等等
- 【Redis】Redis的复制
- springmvc整合redis架构搭建实例
- Spring集成Redis集群(含spring集成redis代码)
- Redis 错误1067:进程意外终止,Redis不能启动,Redis启动不了
- windows下使用redis,Redis入门使用,Redis基础命令
- Redis Desktop Manager无法连接虚拟机中启动的redis服务问题排查步骤
- 阿里云Redis集群子实例内存查看
- Redis持久化、主从与哨兵架构搭建
- CentOS下配置redis允许远程连接
- 【转】Nginx学习---Nginx&&Redis&&hcache三层缓存架构总结
- Windows安装redis
- 【转】Redis概念原理、redis面试
- 深入redis内部--内存管理
- redis High Availability---Redis Sentinel翻译
- 曹工说Redis源码(1)-- redis debug环境搭建,使用clion,达到和调试java一样的效果