我们知道秒杀系统最大特点是瞬时高并发、高访问量的系统。我们还要保证它的高可用性。
这里我们采用Python Django 集成Redis Sentinel(哨兵)集群开发秒杀系统。
Redis Sentinel(哨兵)集群
Redis哨兵为Redis集群提供了高可用性。实际上这意味着我们可以使用哨兵模式创建一个可以不用人为干预而应对各种故障的Redis集群部署。可大大提高系统的高可用性。
哨兵模式还提供了其他的附加功能,如监控,通知,为客户端提供配置。
下面是在宏观层面上哨兵模式的功能列表:
监控:哨兵不断的检查master和slave是否正常的运行。
通知:当监控的某台Redis实例发生问题时,可以通过API通知系统管理员和其他的应用程序。
自动故障转移:如果一个master不正常运行了,哨兵可以启动一个故障转移进程,将一个slave升级成为master,其他的slave被重新配置使用新的master,并且应用程序使用Redis服务端通知的新地址。
配置提供者:哨兵作为Redis客户端发现的权威来源,客户端连接到哨兵请求当前可靠的master的地址。如果发生故障,哨兵将报告新地址。
Redis哨兵是一个分布式系统,采用多个哨兵对一个master不再可用达成一致时执行故障检测。这会降低错误判断的概率。即使在不是所有的哨兵都工作时哨兵也会工作,使系统健壮的抵抗故障。
我们课程采用三Redis哨兵集成Redis实例(master和slave)集群来构建秒杀系统的缓存系统。
秒杀系统涉及主要技术有:
Pytho Django 开发;
Django web 页面静态化;
Python Redis Sentinel(哨兵)集群开发;
Redis 管道、事务实现对秒杀库库的管理;
Redis队列对访问流量进行分流;
Redis Sentinel(哨兵)集群;
Nginx 负载均衡、反向代理等;
高并发的Gunicorn web应用服务;
Supervisor管理进程;
Django应用部署;
分布式集群部署;
......
秒杀系统部署图:
秒杀系统部署图如有相关感兴趣,请访问网易云课程:django和redis实现高并发秒杀系统架构分析设计与开发
网友评论