20210522大检查计划 - ziyouzy/2021blog GitHub Wiki
river-node节点只会去产生Errors和Events这两种数据,同时可以“负责某个”数据的传递工作
river会去产生Errors和Events这两种数据同时也会基于river-node“实现某个”数据的传递工作
无论river-node还是river,最重要的都是需要去重点关注那些将来会负责接收Errors或Events的业务逻辑,你需要确保他们不会发生逆流
其他的也不用太神经过敏
检查顺序:
1.所有的rn(done):
总结,所有river-node所产生的event和error,在主系统中的处理方式需遵循如下原则:
1.所产生的Errors和所产生的Events均禁止被发送给客户端
2.整体系统可基于river-node的Errors采取后续策略(如p.warpError_Panich;BAITSFILTER_LENAUTHFAIL->river success)
3.整体系统不可基于river-node的event采取后续策略
4.所有river-node的event唯一的后续策略只有记录日志
这么规定另一个好处是可以让eebox中的eventbox变得简单
2.所有的readriver
1.所产生的Errors禁止发送给客户端,所产生的Events可以发送给客户端
2.整体系统可基于river的Errors采取后续策略(如p.warpError_Panich)
3.整体系统不可基于river-node的event采取后续策略
4.所有river-node的event唯一的后续策略不再只有记录日志,还可以遵循1所述发送至客户端
(event可以被发送给客户端由于是基于sub机制,因此也就是说可以发送给所有的writer,如TCPUSRIO808RECEIVER_RUN)
3.所有的writeriver
1.由于需要用此模块实现“event流动至客户端”这一功能(接收来自eventBox的数据),因此在流动过程中严禁逆流回eventBox
2.但是可以讲event转化为error并流入ErrorBox
3.严禁用任何writer属性的river“流动处理Error”
2与3的宏观总结:
1.**Errors:记录日志**
2.**Errors:整体系统可基于Errors采取后续策略(如p.warpError_Panich)**
3.**Errors:禁止发送至前端**
4.**Events:记录日志**
5.**Events:整体系统禁止基于Events采取后续策略(基于"Plan for failure,not success"原则)
6.**Events:可发送至前端**(可以将eventBox与writeriver(由于是基于广播机制,其实等同于于任何writeriver)进行“数据流动对接”)
4.tcpmanul(从这里开始变得繁杂,会拥有ps之类的东西了)
5.modbusbox
6.不用检查eebox,而是直接重构
7.service