事件聚合处理流程
2021-10-28 10:21:07 1 举报
同一事件在一定范围内聚合处理,已最后一次操作为准
作者其他创作
大纲/内容
事件消息
开始
否
blocking事件写
互斥
移除缓存时间
释放X锁
结束
RMDB
缓存数据库
消息代理
事件
获取事件X锁
blocking写重置ttl
超时未更新
写入RMDB
setnx
event-a:blocking(with expiration)
是
查询超时未更新的数据
expire blockingkey
更新缓存数据set eventId data
ts2 -> eventId2
定时任务
ts1 -> eventId1
移除缓存数据
event-b:blocking(with expiration)
是否成功
get缓存数据
事件处理器
JAVA客户端(consumer)
pull事件
setnx blocking key with expiration
事件是否blocking写
更新录缓存时间zadd key ts eventId
eventId2 -> data
忽略结果,成功或失败都代表blockingkey刚刚被设置
是否已缓存
blocking写: 保证现成安全事件唯一:员工ID + 事件类型 + 对象ID
eventId1 -> data
收藏
收藏
0 条评论
下一页