jstorm 是阿裡巴巴開源的基于storm采用Java重寫的一套分布式實時流計算架構,使用簡單,特點如下:
開發非常迅速: 接口簡單,容易上手,隻要遵守Topology,Spout, Bolt的程式設計規範即可開發出一個擴充性極好的應用,底層rpc,worker之間備援,資料分流之類的動作完全不用考慮。
擴充性極好:當一級處理單元速度,直接配置一下并發數,即可線性擴充性能
健壯:當worker失效或機器出現故障時, 自動配置設定新的worker替換失效worker
資料準确性: 可以采用Acker機制,保證資料不丢失。 如果對精度有更多一步要求,采用事務機制,保證資料準确。
優點:
Nimbus 實作HA
徹底解決Storm雪崩問題:底層RPC采用netty + disruptor保證發送速度和接受速度是比對的
新增supervisor、Supervisor shutdown時、送出新任務,worker數不夠時,均不自動觸發任務rebalance
新topology不影響現有任務,新任務無需去搶占老任務的cpu,memory,disk和net
減少對ZK的通路量:去掉大量無用的watch;task的心跳時間延長一倍;Task心跳檢測無需全ZK掃描
Worker 内部全流水線模式:Spout nextTuple和ack/fail運作在不同線程
性能:采用ZeroMq, 比storm快30%;采用netty時, 和storm快10%,并且穩定非常多
jstorm使用起來很簡單,遵循Topology,Spout, Bolt的程式設計規範就可以,在下面的例子中将一步步完成這些。例子也很簡單,在spout中不斷産生自增的int數組,bolt接受到數值後列印出日志,并插入到hbase中。
參考另一篇部落格
經過上面的三個步驟,一個最簡單的jstorm應用就開發完成了,接下來通過編譯、打包完後,生成jar檔案 jstorm-hbase-demo-0.1.jar ,将此jar檔案在jstorm叢集的nimbus機器上送出即可: jstorm jar jstorm-hbase-demo-0.1.jar com.xirong.demo.BootStrap config.properties