阅读更多
淘宝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...

  • 配置FindBugs和常见FindBugs错误

    配置FindBugs: 在这里可以对FindBugs规则等进行详细设置。   选择你的项目,右键 => Properties => FindBugs => 1 Run Automatically开关 当此项选中后,FindBugs将会在你修改Java类时自动运行,如你设置了Eclipse自动编译开关后,当你修改完Java文件保存,FindBugs就会运行,并将相...

  • python怎么让矩阵内所有元素自己平方_Python | 加一行注释,让你的程序提速10+倍!numba库十分钟上手指南...

    如果你在使用Python进行高性能计算,Numba提供的加速效果可以比肩原生的C/C++程序,只需要在函数上添加一行@jit的装饰。它支持CPU和GPU,是数据科学家必不可少的编程利器。之前的文章PP鲁:计算机基础系列:源代码如何被计算机执行​zhuanlan.zhihu.com已经提到计算机只能执行二进制的机器码,C、C++等编译型语言依靠编译器将源代码转化为可执行文件后才能运行,Python...

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

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

  • java.lang.IllegalArgumentException: non null key required

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

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

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

  • 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...

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

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

  • 关于return null问题

    public User GetUser(Guid userId)  {      if ( /*for some reason*/)          return null;             return DB.GetByUserId(userId);  } 在我看来没有充分的理由不应该返回null,因为方法的使用者并不知道在何种条件下会得到null,从而导致

  • sonarqube基础:扫描规则:1: Sonar way之Java版

    SonarQube内嵌了Sonar way的扫描规则,不同语言具有不同版本,比如C#/Java/Javascript等,缺省从三个维度对规则进行划分,这篇文章以Sonarqube 5.6.5版本为例,将Java部分的相关的规则进行简单整理。

  • Linux环境中ElasticSearch启动时常见错误、解决

    ● ES启动常见报错及解决措施 说明    文章基于ElasicSearch版本:7.3.2,Linux版本:CentOS-7.7。供其他版本参考。 启动报错  报错1—— [xpack.ml.enabled: false] Caused by: org.elasticsearch.ElasticsearchException: Failure running machine learning n...

  • Null Object模式

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

  • UVM编译报错

    uvm仿真

  • Virtual Machine Monitor source

    /* Virtual Machine Monitor Copyright (C) 2007 Shawn Embleton This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License

  • 【Error记录】

    files.f中类一定要放在例化该类文件的前面编译。不是该文件的问题,是编译的上一个文件有语法错误。virtual不是vitual。

Global site tag (gtag.js) - Google Analytics