事件队列
数据库事件表
广播
- topic以
bro-为前缀 - 启动时查询
eventTime > currentTime - eventTimeOffset的事件,并依次处理
select o
from event o
where o.topic = 'test'
and o.eventTime > ${startTime}
and o.eventID > lastProcessEventID
order by o.eventID asc
集群分工
- topic以
cluster-为前缀 - 查询所有
processTime < currentTime的记录,修改processTime为currentTime + maxProcessSpan,这样其他节点就不会处理同样的事件 - 成功处理完毕后将事件状态设置为processed,或者删除事件