zoukankan      html  css  js  c++  java
  • 分布式任务调度可选方案

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

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

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

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

    只是了解 ,尚未实际应用到项目中,需要检验可靠性、可行性。

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

    成长的乐趣,在于分享!
    大龄程序员,一路走来,感慨颇多。闲暇时写写字,希望能给同行人一点帮助。
    本文版权归作者growithus和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Selenium webdriver+Java-------如何等待页面元素加载完成
    Jmeter入门实战(二)如何使用Jmeter的BeanShell断言,把响应数据中的JSON跟数据库中的记录对比
    Selenium2+Python--下拉选择用select
    Pycharm连接github
    Selenium2+Python--常用方法分类
    setUp和tearDown及setUpClass和tearDownClass的用法及区别
    Selenium2+Python--常用方法
    Selenium2+Python--操作Excel读写(使用xlrd模块实现)
    HashMap 重新认知
    想测试工具类执行main方法却被告知application没有加载怎么办
  • 原文地址:https://www.cnblogs.com/growithus/p/11012227.html
Copyright © 2011-2022 走看看