分佈式任務調度可選方案

 一、除了基於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中間件來實現。數據庫

 

只是瞭解 ,還沒有實際應用到項目中,須要檢驗可靠性、可行性。編程

 

關注公衆號,獲取更多相關技能網絡

相關文章
相關標籤/搜索