业务:用户发起购买请求-->将数据放入购买队列-->经过 N 个队列-->将购买结果告诉用户
场景:目前在一台机器上部署 3 个服务 server.py,当后台服务拿到原始数据后,一直是在同一个 Redis 的 N 个队列中轮流处理,处理完成才存入 DB,所以如果直接杀掉进程重启服务不仅会导致客户端无法请求,还会丢失部分数据。
方案:利用 nginx 的热重启与负载均衡,然后对后台服务进行拆分:一个后台服务对应着一个 Redis,这样后台服务之间就不会有数据影响,数据统计等定时任务单独作为一个服务。这样就有以下几个服务:
服务 A-->Redis a
服务 B-->Redis b
服务 C-->Redis c
数据统计等定时任务,服务 D
各位同学,场景如上,你们还有什么更好的方法或者建议么,欢迎大家来探讨一下。