分布式任务调度可选方案

 一、除了基于jvm的java之处,新接触一个JVM语言——SCALA,一种同时面向脚本和面向函数的语言,spark大数据框架是基于scala语言。照着网络教程,简单的写了几个例子,感受object,class与java语境中仍是有必定的差别,但与java体系结合的很好,还有groovy语言,都是比较小巧敏捷的语言各种,但未真正实际,今年时间中要简单实际应用一下。java

 

二、在搜索API GATEWAY开源产品的过程当中,除了netflix zuul组件,发现KONG组件能够应用,其基于openresty实现,同时openrestry又是lua语言实现,简单接触lua,是一个小巧但又强大的脚本语言,京东的开涛在京东页面高并发场景下,利用nginx + lua编程解决了很多问题。KONG实现了接口网关的权限控制、请求的限流、分发、监控、负载均衡等,KONG基于数据存储,借助于postgresql或cassandra数据库实现。nginx

 

三、一直使用Quartz组件,但对misfire这种机制均未涉及到。针对实际应用场景,可采起不一样策略来应对。经常使用的xml配置方式,是基于RAMJOBSTORE的方式,同时还存在一种JDBCJOBSTORE的方式,借助数据库来存储任务,支持不一样数据库。同时利用jdbcjobstore的方式实现集群的配置。但耦合性比较强,能够采用任务调度与执行分开的方式来运做,将调度与执行分开,提升运行效率与扩展性。sql

 

四、xxl-job的开源产品完美实现这一方式,admin配置、调度中心,执行器独立部署,部署时能够jar或war两种方式,因为内置jetty中间件,在通信方式中没有障碍。一个中心、多个集群高可用式的执行器,任务监控,任务日志尽收眼底。xxl-job基于数据库来共同管理任务,是个很好的分布式任务方案。 除此以外还有Tbschedule和elstic-job可选方案,二者基于db外,还能够基于zookeeper中间件来实现。数据库

 

只是了解 ,还没有实际应用到项目中,须要检验可靠性、可行性。编程

 

关注公众号,获取更多相关技能网络

相关文章
相关标签/搜索