tinympi4j 是一款微型的 java 分布式离线计算框架, 实现原理如图:
特性简单直观, 没有任何学习难度
slave支持多个任务并发/并行执行
使用HTTP协议通信
场景: 找素数/grep/wordcount/超大文件或大量小文件处理
不支持复杂数据类型
没有进度监控,健康监控,无容错功能
例子: 用两台服务器分布式计算找出10000以内的素数public static void main(String[] args) {
//启动master上的tomcat
final int masterport = 8086;
final String masterurl = "http://192.168.1.100:" + masterport;
TomcatTool.startMasterTomcat(masterport);
//创建任务
final BigTask bigtask = BigTask.create(masterurl);
//添加任务到两台计算节点, 请确保计算节点上的 tinympi4j-slave 已启动
//关于计算节点: https://github.com/binaryer/tinympi4j-slave
bigtask.addTask2Slave("http://192.168.1.101:1234", PrimeSplitedtask.class, new Integer[] { 2, 5000 });
bigtask.addTask2Slave("http://192.168.1.102:1234", PrimeSplitedtask.class, new Integer[] { 5001, 10000 });
//等待所有节点执行完毕
final Collection resultset = bigtask.executeAndWait();
//打印结果
for (int n : resultset){
//System.out.println(n);
}
}