MiDis分布式处理框架

demo说明

midis是一个基于组播的分布式协同处理的框架。在midis分布式环境中,始终存在一个coordinator调度者发送任务数据。coordinator是唯

一的目前版本,同事存在worker来处理基于分布式发送过来的数据mission,当一个coordinator crash down掉后,会选择一个worker转换

角色为coordinator,继续维护原coordinator进行的工作。当一个worker crash down掉后,coordinator 会根据当前context的状况,将发

context状态,选择将送到worker的任务mission进行重传、放弃等操作。 额。。

1.首先解释midis运行过程中,涉及到的几个基本的组件。

   基本组件:
  
   mission (任务)

   midis框架运行过程中,发送的基本数据单元。

  
   coordinator(调度者)
  
   midis框架中,负责发送mission,以及维护worker,mission运行机制的调度单元。

   worker(农民)

   midis框架中,负责接受mission,以及处理mission,返回结果的处理单元。

  
   Domain (领域)
  
   midis框架在组件分布式网络时,创建的虚拟区域,可以理解为组,里面注册了分布的Node

   Node (节点)
  
   midis分布式框架逻辑上的处理单元,即一个PC处理机。

   。。。(还有吧)


2. demo

  演示最基本的分布式处理功能,以分布式文件处理为例子。在该demo中,设定一个文件路径.里面放置挺多files

  

  建立midis网络。注册cooridnator,worker等组件。

  run.

3. 解释

  coordinator  始终维护一个空闲worker的队列,以及一个mission的队列。

  当有空闲worker时,以及有mission等待处理。

  会trigger一次distribute.

  OK,就到这里。

4.来个代码片段
package com.primenetwork.framework.midis.demo.alphabet;

import com.primenetwork.framework.midis.core.Domain;
import com.primenetwork.framework.midis.core.MiDisDomain;
import com.primenetwork.framework.midis.core.Node;

public class EntryPoint {

	public static void main(String[] args) {

		/**
		 * build domain
		 */
		Domain domain = MiDisDomain.buildDomainXML("config/midis.cfg.xml");

		/**
		 * build node.
		 */
		Node node = domain.buildNode("PC1");

		
		/**
		 * add coordinator.which will distribute mission into the domain.
		 */
		node.addCoordinator(new AlphabetCoordinator());

		/**
		 * add worker.to handle mission.
		 */
		node.addWorker(new AlphabetWorker());

		/**
		 * add reduce handler.
		 */
		node.addReduceHandler(new MyReduceHandler());

		node.start();
	}
}




你可能感兴趣的:(框架,虚拟机,工作,xml)