事件通知

心不动则不痛 提交于 2020-03-21 23:37:41

3 月,跳不动了?>>>

zookeeper中,我们可以监控特定的znode节点,当节点发生变化时,便会给监控方发送事件通知。这有点类似于发布-订阅模式,拿Redis来说,当我们发布新消息时,Redis便会通知订阅者。

从设计模式上来说,事件通知属于观察者模式。当被观察者发生某种变化时,通知观察者,观察者对通知作出处理。

在业务上,将事件通知独立成一个微服务:事件中心,目的是解耦业务。本质上,kafka能做什么,事件中心就能做什么。记得看过一句话,大概的意思的是:任何问题,都能通过抽象一个中间服务层来解决

实现一个事件中心,主要包括两部分:

  1. 创建事件
  2. 订阅事件

拿客户端冷启动的事件为例,我们可能需要在用户打开APP的时候,做一些特殊的业务逻辑(这种情况应该挺常见的)。事件中心的业务处理流程包括:

  1. 在事件中心创建一个客户端冷启动的标识
  2. 业务在后台订阅这个标识,并配置一个请求地址,用于接受回调通知
  3. 客户端冷启动时,通知事件中心,事件中心触发回调通知

事件中心充当了代理的角色,因为有了事件中心作为中间层,发布事件的逻辑和消费事件的逻辑可以并行开发,同时,如果有别的业务也需要关注客户端冷启动事件,在事件中心订阅这个事件就可以了。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!