LTS特性
1、Spring/Spring Boot支持
LTS可以完全不用Spring框架,但是考虑到很用用户项目中都是用了Spring框架,所以LTS也提供了对Spring的支持,包括Xml和注解,引入
lts-spring.jar
即可。
2、业务日志记录器
在TaskTracker端提供了业务日志记录器,供应用程序使用,通过这个业务日志器,可以将业务日志提交到JobTracker,这些业务日志可以通过任务ID串联起来,可以在LTS-Admin中实时查看任务的执行进度。
3、SPI扩展支持
SPI扩展可以达到零侵入,只需要实现相应的接口,并实现即可被LTS使用,目前开放出来的扩展接口有
- 对任务队列的扩展,用户可以不选择使用mysql或者mongo作为队列存储,也可以自己实现。
- 对业务日志记录器的扩展,目前主要支持console,mysql,mongo,用户也可以通过扩展选择往其他地方输送日志。
4、故障转移
当正在执行任务的TaskTracker宕机之后,JobTracker会立马将分配在宕机的TaskTracker的所有任务再分配给其他正常的TaskTracker节点执行。
5、节点监控
可以对JobTracker,TaskTracker节点进行资源监控,任务监控等,可以实时的在LTS-Admin管理后台查看,进而进行合理的资源调配。
6、多样化任务执行结果支持
LTS框架提供四种执行结果支持,
EXECUTE_SUCCESS
,EXECUTE_FAILED
,EXECUTE_LATER
,EXECUTE_EXCEPTION
,并对每种结果采取相应的处理机制,譬如重试。
- EXECUTE_SUCCESS: 执行成功,这种情况,直接反馈客户端(如果任务被设置了要反馈给客户端)。
- EXECUTE_FAILED:执行失败,这种情况,直接反馈给客户端,不进行重试。
- EXECUTE_LATER:稍后执行(需要重试),这种情况,不反馈客户端,重试策略采用30s的策略,默认最大重试次数为10次,用户可以通过参数设置修改这些参数。
- EXECUTE_EXCEPTION:执行异常, 这中情况也会重试(重试策略,同上)
7、FailStore容错
采用FailStore机制来进行节点容错,Fail And Store,不会因为远程通信的不稳定性而影响当前应用的运行。
8、动态扩容
因为LTS各个节点都是无状态的,所以支持动态增加删除节点,达到负载均衡的目的