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