Webhook——实时同步/响应方案
webhook直译就是——网络钩子,该如何理解webhook呢?
可以从银行卡余额入手:
当账户没有开通
短信提醒
功能时,用户想知道账户余额时,就必须主动查询,才能实时获取当前真实余额。当账户开通了
短信提醒
功能,每次余额的变更,银行会主动发短信,实时发送当前真实余额给用户。
用户
和银行
就是两个系统,彼此通过短信提醒
这种方式实现数据实时同步,就是现实世界中的webhook
。
行为:用户主动查询 ----> 银行主动通知
结果:余额延迟同步 ----> 余额实时同步
方案:短信提醒
对于两个system而言,A系统拥有数据源,B系统需要实时同步该数据。
那么就不能由B来调用A系统的api,而是由A调用B的api。
由B提供一个接口,A知道数据源何时创建、修改、删除,并通过api实时通知到B系统,即可满足实时同步/响应
效果。
很多系统之间通过
定时任务
的方式同步数据,不仅消耗了多余的资源,也无法满足实时同步的效果。当然,实现webhook需要一定条件,比如A系统是亚马逊公司,B系统无法随便让亚马逊来调自己的api来实时同步B系统要获取的数据。