Message Scheduler 模块
1. 概述
Linkis-RPC可以实现微服务之间的通信,为了简化RPC的使用方式,Linkis提供Message-Scheduler模块,通过如@Receiver注解的方式的解析识别与调用,同时,也统一了RPC和Restful接口的使用方式,具有更好的可拓展性。
2. 架构说明
2.1. 架构设计图
2.2. 模块说明
- ServiceParser:解析Service模块的(Object)对象,同时把@Receiver注解的方法封装到ServiceMethod对象中。
- ServiceRegistry:注册对应的Service模块,将Service解析后的ServiceMethod存储在Map容器中。
- ImplicitParser:将Implicit模块的对象进行解析,使用@Implicit标注的方法会被封装到ImplicitMethod对象中。
- ImplicitRegistry:注册对应的Implicit模块,将解析后的ImplicitMethod存储在一个Map容器中。
- Converter:启动扫描RequestMethod的非接口非抽象的子类,并存储在Map中,解析Restful并匹配相关的RequestProtocol。
- Publisher:实现发布调度功能,在Registry中找出匹配RequestProtocol的ServiceMethod,并封装为Job进行提交调度。
- Scheduler:调度实现,使用Linkis-Sceduler执行Job,返回MessageJob对象。
- TxManager:完成事务管理,对Job执行进行事务管理,在Job执行结束后判断是否进行Commit或者Rollback。