阅读更多
淘宝Fourinone2.0提供了一个4合1分布式框架和简单易用的编程api,实现对多台计算机cpu、内存、硬盘的统一利用,从而获取到强大计算能力去解决复杂问题:

  • Fourinone框架提供了一系列并行计算模式(农民工/包工头/职介绍/手工仓库)用于利用多机多核cpu的计算能力;
  • 提供完整的分布式缓存和小型缓存用于利用多机内存能力;
  • 提供像操作本地文件一样操作远程文件(访问、并行读写、拆分、排他、复制、解析、事务等)用于利用多机硬盘存储能力;
  • 由于多计算机物理上独立,Fourinone框架也提供完整的分布式协同和锁以及简化MQ功能,用于实现多机的协作和通讯。
Fourinone 2.0新增功能:

1. 提供了对分布式文件的便利操作,将集群中所有机器的硬盘资源利用起来,通过统一的fttp文件路径访问,如:

Windows:fttp://v020138.sqa.cm4/d:/data/a.log
Linux:fttp://v020138.sqa.cm4/home/user/a.log

比如以这样的方式读取远程文件:

 FttpAdapter fa = FttpAdapter("fttp://v020138.sqa.cm4/home/log/a.log");
 fa.getFttpReader().readAll();

2.  提供对集群文件的操作支持,包括:

  • 元数据访问,添加删除,按块拆分, 高性能并行读写,排他读写(按文件部分内容锁定),随机读写,集群复制等
  • 对集群文件的解析支持(包括按行,按分割符,按最后标识读取)
  • 对整形数据的高性能读写支持(ArrayInt比ArrayList存的更多更快)
  • 两阶段提交和事务补偿处理
  • 自带一个集群文件浏览器,可以查看集群所有硬盘上的文件(不同于hadoop的namenode,没有单点问题和容量限制)
总的来说,将集群看做一个操作系统,像操作本地文件一样操作远程文件。

但是fourinone并不提供一个分布式存储系统,比如文件数据的导入导出、拆分存储、负载均衡,备份容灾等存储功能,不过开发人员可以利用这些API去设计和实现这些功能,用来满足自己的特定需求。

更多介绍请看使用指南:

一、如何搭建配置FttpAdapter环境
二、如何访问集群文件根目录
三、如何访问和操作远程文件
四、如何进行集群内文件复制和并行复制
五、如何读写远程文件
六、如何解析远程文件
七、如何并行读写远程文件
八、如何批量并行读写远程文件和事务补偿处理

3.  自动化class和jar包部署

class和jar包只需放在工头机器上, 各工人机器会自动获取并执行,兼容操作系统,不需要进行安全密钥复杂配置

4.  网络波动状况下的策略处理,设置抢救期,抢救期内网络稳定下来不判定结点死亡

下载地址:http://www.skycn.com/soft/68321.html
9
0
评论 共 15 条 请登录后发表评论
15 楼 jack.yujun 2012-06-06 00:31
如果淘宝系统都这么写,估计死都不知道怎么死的。
14 楼 jack.yujun 2012-06-06 00:27
名字很贴切“四不像”
13 楼 jack.yujun 2012-06-06 00:21
从c++刚转行没多久才开始学java?
12 楼 jack.yujun 2012-06-06 00:18
这是淘宝团队的人写的吗?一个字“晕”
11 楼 zhangjunbao 2012-06-05 11:18
java_user 写道
这个不会是轮子吧

我是说其他有类似需求的大厂,比如百度腾讯新浪可能会根据自己的需求搞自己的一套,而一般不会用淘宝的这套
10 楼 java_user 2012-06-05 10:47
这个不会是轮子吧
9 楼 zhangjunbao 2012-06-05 10:22
阿里系的开源精神确实很赞!
不过类似这样一些开源产品受众比较小, 一般用户(比如我:)用不上,有需要的可能他们都自己轮一个, 当然必然有值得学习借鉴的地方,

国内开源路漫漫啊
8 楼 fourinone 2012-06-05 10:14
netcafe 写道
这是开源还是没开源啊?下载地址居然是skycn也太不专业了吧。

下载地址跟是否专业没有关系,淘宝开源平台taocode后续也会发布。
希望关注者不要只是好奇和跟风,在技术上要形成自己的悟性和判断,用与不用,能否解决自己的业务需要,能否满足自己的性能要求,最好来源自己的实践检验。
开源软件都是放在那里给有需要的人下载,从不强迫任何人使用,对其他框架的爱好者和信任者,可以借鉴参考,如果提具体技术意见也欢迎。
7 楼 netcafe 2012-06-05 01:20
这是开源还是没开源啊?下载地址居然是skycn也太不专业了吧。
6 楼 cosmo1987 2012-06-04 20:42
zouruixin 写道
淘宝不是有HSF了吗,这个跟HSF的联系是?

HSF应该是SOA架构的吧
5 楼 kenail 2012-06-04 20:38
应用于哪种典型场景?
4 楼 zouruixin 2012-06-04 16:42
淘宝不是有HSF了吗,这个跟HSF的联系是?
3 楼 dieslrae 2012-06-04 16:07
这玩意淘宝自己应用的情况怎么样,不会是让我们来当小白鼠吧
2 楼 aking222 2012-06-04 15:08
请问作者是淘宝的人吗?
1 楼 alyouge 2012-06-04 13:21
good 支持下

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 2021-05-04

    标题:UVM中含monitor & scoreboard的实验,当遇到报错Error-[NOA] null object access后的解决办法 Linux终端跑遇到报错情况如下图 图中提示router_env.sv第123行有问题,仔细一看是object 没被分配就使用致错,应该是scoreboard里面的类,要声明并创建,才能使用, 前面已经例化scoreboard sb 在报错的virtual function内容前加入一行: 至于为什么用create而不用new,读者思考一下吧,回答上了

  • 基于systemVerilog的UVM 调试问题及解决办法集锦

    说在前头 目前接触的UVM内容都是基于systemVerilog的。所以,碰到的问题主要基于sv。 一、低级语法错误 此类错误是由于一些低级操作或常识不清导致的,并很容易解决。 多为语法错误。 1、信号赋值 信号主要分为wire型和reg型。 在进行信号赋值时,wire型信号不能出现在等号左边只能在右边,reg型信号可以出现在等号左边和右边。故,当不小心把wire型信号放在等...

  • net.sf.json.JSONObject 为 null 的判断

    做项目时,遇到这么一个坑:如何判断一上json 是否为空, 开始的代码是这样的:JSONObject detail = JSONObject.fromObject("123"); if (detail == null) { detail = new JSONObject(); }发现有问题,无论怎么调整字符串的内容,都不会走 new Jsonobject() 。各种试,各种问,最后没办法了

  • 设计模式之美:Null Object(空对象)

    索引 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):Null Object 的示例实现。 意图 通过对缺失对象的封装,以提供默认无任何行为的对象替代品。 Encapsulate the absence of an object by providing a substitutable alternative that offe...

  • lucen报错 value cannot be null

    今天在测试lucene 创建索引时,公司的测试环境一直报这个错。not null?? 这个不就是个值传空了吗,so easy! 然而事情并没有这么简单,因为这个报错指向的是我的luceneutil类 ,这个里面经过几代人的测试难道会有问题?? 我一脸懵逼,所以只有一个可能就是从数据库里返回的数据为空了,打印一下list的size看一下 == 1604! ! wtf! 什么鬼! 明明有数据 还会...

  • JavaSE学习总结(九)常用类(中)/StringBuffer类/StringBuilder与StringBuffer的区别/二分查找/Arrays类/包装类/Integer类/自动装箱与自动拆箱

    常用类(中) 一、StringBuffer类 (一)概述 我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。而StringBuffer就可以解决这个问题,当对字符串进行修改的时候,需要使用 StringBuffer类(或StringBuilder类)。StringBuffer是线程安全的可变字符序列。 和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。 (二)StringBu

  • java.lang.IllegalArgumentException: non null key required

    redis缓存数据时报过这个错误,我的错误原因是存是数据是空,存之前加个非空判断就可以了

  • 关于C#报空Object is null 错误的看法

    昨天项目的一个问题 :在切换场景页面的时候,报空指针的错,总显示没有找到对象。由于代码是之前就早写好的了,只是根据最上层领导的意见修改下个别显示UI,所以也就一定是后来的那些代码问题。果不其然,加的新手指示引导的UI,在场景切换的时候,是需要先判断是否存在的,此时就会报空。因为在此之前,我都已经把这个UI关闭了 那当然会报空。所以啊,尤其是看团队其他人的代码,一定要认真看,不...

  • java.util.Objects.isNull vs object == null 之Objects类的介绍

    Java7引入了java.util.Objects类,Objects提供了很多工具类方法,其中包括isNull方法(Java8引入了isNull方法),那么java.util.Objects.isNull 与 object== null有何区别?为什么会引入java.util.Objects.isNull方法? 1, 直接对比源代码 public static boolean is...

  • objects的equals和 isNull

    objects的equals主要用来防止,你给比较的其中一个变量送空值字符串.equals如果有空值参与就会报错

  • net.sf.json.JSONException: null object 错误分析和解决

      这个错误是JSONObject对象判断为null不成立  引起的  JSONObject jsonObject = JSONObject.fromObject(" null"); System.out.println(jsonObject); // jsonObject为空 引起 null object System.out.println...

  • Java中implies_Java FilePermission implies()方法

    Java FilePermission implies()方法java.io.FileOutputStream.implies(Permission p) 用于检查FilePermission对象是否具有指定的权限。该方法返回true,如果:p是文件权限的一个实例。p操作是此对象的动作的真子集。p路径名是由这个对象的路径名隐藏。1 语法public boolean implies(Permissi...

  • typeof null 为什么返回 object?(“typeof null”的历史)

    读到一篇介绍typeof null的文章,感觉还不错,特此记录 原文 Update 2013-11-05: I take a look at the C code of typeof to better explain why typeof null results in 'object'. In JavaScript, typeof null is 'object', which incorr...

  • Null Object模式

    在程序中经常要使用==null来判定对象是否初始化,可以采用null object模式来简化这样的代码,从而提高健壮性。 [code="java"]/** * */ /** * @author lucy * */ public abstract class AbstractProduct { public String name; public Integ...

  • 在代码中引入Null Object模式

    相信大家一定在开发中见过并且写过类似这样的代码: public Book getBook(int id) { if (id < 0) { return null; } return new Book(1, "Design Pattern", 100); }Book book = getBook(-1); if (book != null) { }系统在使用对...

  • HTML中Null的类型返回为:Object 的原因

    在HTML中用Typeof()返回null的类型为:Object null的类型返回是object,这是由于历史原因造成的: 1995年JavaScript语言的第一版,所有值都设计成32位, 其中最低的3位用来表述数据类型,object对应的值是000。 当时,只设计了五种数据类型(对象、整数、浮点数、字符串和布尔值), 完全没考虑null,只把它当作object的一种特殊值,32位全...

  • UVM编译报错

    uvm仿真

Global site tag (gtag.js) - Google Analytics