4.3 分离与拓展(事件与队列,利用事件串联业务)


我们前面讲过技术与业务的分离,今天主要如何利用事件与消息实现两个服务之间的交互
事件与消息的关系
事件是系统内部的数据通讯,是受限于进程内部的数据通讯,而消息则是跨进程、阔服务的消息通讯。他们两者可以传递相同的数据,但是消息可以传达到更远的地方,事件也是消息的触发者,通常消息是事件数据的传递者。
场景演示
我将以模拟OA审批财务报销为例,介绍两个服务之间如何实现分离与拓展的。
场景介绍:
现在需要报销一笔财务费用,目前的业务流程是需要先再OA系统中完成财务的报销审批,审批通过以后再由财务人员登录财务系统,去完成费用的报销。
场景改造
我们将OA系统完成审批时触发一个事件,然后通过消息将事件广播出去,然后由财务系统订阅消息,并自动完成财务的审批操作。
https://github.com/codingapi/cranky-code/tree/main/demo4.3