com.jiuxiangroupid>
mossroseartifactid>
2.2.0-releaseversion>
dependency>
******job
簡單任務
distributedjob
分布式任務,通過slicer將作業分隔成多個子任務,子任務在集群內分布執行
streamingjob
分布式流式任務,解決分片非常多時distributedjob記憶體占用大的問題
mapreducejob
mapreduce任務
mossroseprocess
多個mossroseprocess組成集群,集群保證有且只有乙個節點競選成為主節點,主節點負責觸發作業;所有節點都是工作節點,主節點觸發的任務會在所有工作節點上分布執行
mossroseconfig
mossrose配置,包括集群元資訊和任務元資訊
implement a ****** job
public
class
******examplejob
implements
******job };}
}
config the job in spring<?xml version="1.0" encoding="utf-8"?>
xmlns=""
xmlns:mossrose=""
xsi:schemalocation=" /spring-beans.xsd
/mossrose.xsd">
class="com.jiuxian.jobs.bean.businessbean" />
id="******examplejob"
class="com.jiuxian.jobs.job.******examplejob" />
id="distributedexamplejob"
class="com.jiuxian.jobs.job.distributedexamplejob" />
id="streamingexamplejob"
class="com.jiuxian.jobs.job.streamingexamplejob" />
name="mossrose-example"
discovery-zk="localhost:2181" />
id="******examplejob"
cron="0/5 * * * * ?"
job-bean-name="******examplejob"
group="example" />
id="distributedexamplejob"
cron="0/15 * * * * ?"
job-bean-name="distributedexamplejob"
group="example" />
id="streamingexamplejob"
cron="0/20 * * * * ?"
job-bean-name="streamingexamplejob"
group="example"
description="分布式流式任務示例" />
mossrose:jobs>
mossrose:config>
beans>
start the job
implement a distributed job
public
class
somedistributedjob
implements
distributedjob };
}@override
public com.jiuxian.mossrose.job.distributedjob.executorexecutor() };}
}
implement a streaming job
distributedjob需要把需要分布式執行的任務集合一次性的返回,在集合非常大的時候會存在記憶體的問題,streamingjob解決了這個問題,任務可以以流的方式不斷輸出,以保證記憶體可以及時釋放。
public
class somestreamingjob implements streamingjob
@override
public string next() };}
@override
public executorexecutor() };}
}
implement a map/reduce jobpublic class mapreduceexamplejob implements mapreducejob<
integer, integer
> };}
@override
public com.jiuxian.mossrose.job.mapreducejob.executor<
integer, integer
> executor() };}
@override
public com.jiuxian.mossrose.job.mapreducejob.reducer<
integer
> reducer() ", rs);}};
}}
使用redis構建可靠分布式鎖
關於分布式鎖的概念,具體實現方式,直接參閱下面兩個帖子,這裡就不多介紹了。分布式鎖的多種實現方式 分布式鎖總結 對於分布式鎖的幾種實現方式的優劣,這裡再列舉下 1.資料庫實現方式 優點 易理解 缺點 運算元據庫消耗較大,效能較低。為了處理一些異常,會使得整個方案越來越複雜 2.快取實現方式 優點 效...
Jenkins的分布式構建
1.架構 jenkins的master sl e分布式架構可以解決單點構建任務多 負載較高 效能不足的問題。2.原理 對於jenkins的分布式框架,可以簡單的理解為server client模式,在jenkins中是master sl e,也就是乙個主的server叫master,其他的子clie...
從構建分布式秒殺系統聊聊分布式鎖
摘要 前言 最近懶成一坨屎,學不動系列一波接一波,大多還都是底層原理相關的。上周末抽時間重讀了周志明大濕的 jvm 高效併發部分,每讀一遍都有不同的感悟。路漫漫,藉此,把前段時間搞著玩的秒殺案例中的分布式鎖深入了解一下。最近懶成一坨屎,學不動系列一波接一波,大多還都是底層原理相關的。上周末抽時間重讀...