作者:菁菁da小姐认_194 | 来源:互联网 | 2023-08-30 19:38
今天心情不美丽,放下了手上研究的技术,想跟大家聊2句,关注我肯定不是听我发牢骚的,上点干货。
曾几何时,电脑前,看着视频教程,看老师翻看着英文API,熟练的找着各种资源,羡慕,我何时能跟他一样翻阅各种英文文档,游走在技术之巅。这种感觉套用《电视剧司马懿》的话:“操刀之人”。
如今,我就恬不知耻的称自己是“操刀之人”,技术为我所用,用的也算恰到好处。
真正的解耦
假设一个交易系统,做电话费充值业务。系统分为以下2个步骤处理。
1、扣除用户的钱
2、电话费充值
当第1步处理完成后,往kafka里丢一个消息,用于通知第2步;第2步收到消息并进行话费充值,流程结束。
上面kafka,仅仅是充当了一个异步队列,它的消息是有针对性的发给第2个步骤的。
真正的解耦是整个思维的转变,第1步骤,扣完用户的钱后,将订单所有状态发送到kafka,结束,不需要关心谁需要这笔订单。
需要的系统去订阅这个订单,电话费充值系统需要,去订阅,实时对账系统需要,去订阅,清分系统,大数据平台需要,去订阅......
这才是真正的解耦,只需要把自己的最终状态发送给kafka,发送者根本不关心谁是消费者; 需要的进行订阅即可,一笔交易被多个系统同时使用,话费充值平台收取消息进行话费充值,实时对账平台马上就可以进行资金核对,大数据平台也可以拿到做数据分析。
整个庞大的系统变得单纯,松耦合,高效。kafka则成为一个庞大的消息中心,而不仅仅是个异步队列。