基于流程事件驱动编程

	听到这个词语,大家可能有点陌生而熟悉,Reactive Streams这个基于事件驱动编程。
	但是呢,这次带来的,跟他完全不是同一个场景下的使用产品,首先,先介绍下,该架构
![在这里插入图片描述](https://img-blog.csdnimg.cn/f751566eb5ed42d9b386830a5afa4f2e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5LiA5Y-255-l56eLLXNreQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
上面的时序图是,架构中对事件的调度与角色之间的交互
(1)上面的图只是架构内部的东西,该架构的出现,让我们在开发业务的时候,只用关心,自己的事件业务代码。
(2)以上架构带来的优势,支持事件的插拔,在一个流程中可以支持现有事件功能,无修改代码的接入。在解决线上问题,甚至开发过程中,非常直接明了的去排查事件问题。
(3)使用该架构,可以完全抛弃,微服务的概念,因为,事件独立可执行,他们之间并无调度关系。事件由架构中的scheduler进行调,flowManager进行生命周期管控,eventManager的事件线程执行。
(4)该架构规范了开发流程,让你设计功能的同时,已经做了大部分的开发工作,当你流程,与事件图做完之后,你只需要去实现事件代码。
(5)该产品支持集群部署,monitor会监听事件的执行状态,当有worker机器挂了,会通知flowManager,这边flowManager会再发起让scheduler进行调度选择合适的机器节点执行。
(6) 每个事件支持,在操作页面上进行修改参数重试等机制,比如你排查线上问题,当有一个节点执行多次之后,他依然失败,你需要修代码,那么你只需要修改该事件,进行替换,点击执行,那么他可以成功之后,继续执行后面的事件节点。

你可能感兴趣的:(分布式技术,java)