說明:rocketmq實現的延時隊列只支持特定的延時時間段,1s,5s,10s,...2h,不能支持任意時間段的延時排序
具體實現:rocketmq發送延時消息時先把消息按照延遲時間段發送到指定的隊列中(rocketmq把每種延遲時間段的消息都存放到同一個隊列中)而後經過一個定時器進行輪訓這些隊列,查看消息是否到期,若是到期就把這個消息發送到指定topic的隊列中,這樣的好處是同一隊列中的消息延時時間是一致的,還有一個好處是這個隊列中的消息時按照消息到期時間進行遞增排序的,說的簡單直白就是隊列中消息越靠前的到期時間越早隊列