可靠定时任务系统的设计
2017-12-15 本文已影响64人
go_mars
使用延迟消息实现,分为三个部分:
- 生产者,定时器,消费者;
- 要求三个部分都保证可靠;
- 同时要保证多个生产者只能发出一条延迟消息,无论有多少消费者一条消息只能被消费一次;
- 生产者可用etcd或者直接用raft来实现选主后,由主节点发送延迟消息,从而保证可靠性,防止产生重复的消息,此处不会成为性能瓶颈;
- 对于周期性定时任务,生产者可以同时作为一个消费者,在收到延迟消息后计算出下次触发时间再发出一个延迟消息,可在消息体的设计加入关于周期定时的信息。