分布式系统fourinone上手
这篇文章就是记载一下自己跑Demo的过程;搞了好久,果然还是我太菜了;前面几天没有跑出来最后找到原因固然是在敲demo代码的时候敲错了,真是令人头大。这边的步骤参考了同学的文章,很感谢,后面有链接;我这边的环境配置,windows10系统;JDK1.8.0;
1.首先嘛先下载源码嘛,github上面可以找到github:fourinone源码;我直接下载了4.17.10版本
2.下下来之后就解压嘛,解啊解啊就好啦;解压之后这里面会有两个jar文件,上面第一个是用jdk1.8编译的,下面的 是用jdk1.7编译,我电脑上安装的是1.8版本的jdk,所以我使用的是第一个。
3.Demo部分源码在 书籍:《大型分布式系统架构与实战》中能找到;
// ParkServerDemo.java
import com.fourinone.BeanContext;
public class ParkServerDemo{
public static void main(String[] args) {
BeanContext.startPark();
}
}
// SimpleWorker.java
import com.fourinone.MigrantWorker;
import com.fourinone.WareHouse;
public class SimpleWorker extends MigrantWorker
{
public WareHouse doTask(WareHouse inhouse){
String word=inhouse.getString("word");
System.out.println(word+" from Contractor");
return new WareHouse("word",word+" world!");
}
public static void main(String[] args) {
SimpleWorker mw=new SimpleWorker();
mw.waitWorking("simpleworker");
}
}
// SimpleCtor .java
import com.fourinone.Contractor;
import com.fourinone.WareHouse;
import com.fourinone.WorkerLocal;
import java.util.ArrayList;
public class SimpleCtor extends Contractor{
public WareHouse giveTask(WareHouse inhouse){
WorkerLocal[] wks=getWaitingWorkers("simpleworker");
System.out.println("wks.length:"+wks.length);
WareHouse wh =new WareHouse("word","hello");
WareHouse result=wks[0].doTask(wh);
while (true){
if(result.getStatus()==WareHouse.READY){
System.out.println("result:"+result);
break;
}
}
return null;
}
public static void main(String[] args) {
SimpleCtor a=new SimpleCtor();
a.giveTask(null);
}
}
4.接下来嘛,我是直接把jar文件复制到了这三个java文件的目录,然后编译运行;举一个例子:javac -classpath fourinone.jar; SimpleCtor.java;编译之后的目录是这样的
5.依次运行ParkServerDemo;SimpleWorker;SimpleCtor;
运行结果如下图:
这第一个demo是运行了,然而这个系统要怎么写,依旧还是一脸懵逼;;;
过程中还存在的问题:
在下载fourinone4进行试验之前先尝试了fourinone2.0进行尝试,2.0版本的jar查看了一下,他是用jdk1.6进行编译的;然而本机是1.8;于是就想在本机上用JDK1.8在编译出来。
javac -source 1.6 -target 1.8 -bootclasspath F:\Javaproject\simple_work\fourinone.jar; SimpleWorker.java;
使用这个对java文件进行编译的话,最后也可以实现,只是这样依旧没能实现用JDK1.8对整个jar文件进行重新的编译
参考文章
[1]: https://blog.csdn.net/Nase_Mitsuki/article/details/102635920