五十款阿里开源软件说明介绍

五十款阿里开源软件说明介绍

以下文章从开源中国汇总而来:http://www.oschina.net/project/alibaba

1.JDBC连接池、监控组件 Druid 

 

Druid是一个JDBC组件,它包括三部分:(1) DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系;(2)DruidDataSource 高效可管理的数据库连接池;(3)SQLParser ;

Druid可以做什么/p>

1) 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。 

2) 替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。 

3) 数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。 

4) SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。 

扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter-Chain机制,很方便编写JDBC层的扩展插件。

 

 

如下是一个基于Druid内置扩展StatFilter的监控实现:

五十款阿里开源软件说明介绍
  • Provider

    • 暴露服务方称之为“服务提供者”。

  • Consumer

    • 调用远程服务方称之为“服务消费者”。

  • Registry

    • 服务注册与发现的中心目录服务称之为“服务注册中心”。

  • Monitor

    • 统计服务的调用次调和调用时间的日志服务称之为“服务监控中心”。

Github地址:https://github.com/alibaba/dubbo

 

7.开源数据库AliSQL

AliSQL是基于MySQL官方版本的一个分支,由阿里云数据库团队维护,目前也应用于阿里巴巴集团业务以及阿里云数据库服务。该版本在社区版的基础上做了大量的性能与功能的优化改进。尤其适合电商、云计算以及金融等行业环境。

阿里云数据库资深专家丁奇介绍,AliSQL版本在强度和广度上都经历了极大的考验。最新的AliSQL版本不仅从其他开源分支比如:Percona,MariaDB,WebScaleSQL等社区汲取精华,也沉淀了阿里巴巴多年在MySQL领域的经验和解决方案。AliSQL增加更多监控指标,并针对电商秒杀、物联网大数据压缩、金融数据安全等场景提供个性化的解决方案。

“在通用基准测试场景下,AliSQL版本比MySQL官方版本有着70%的性能提升。在秒杀场景下,性能提升100倍。”丁奇表示。

阿里云资深总监李津表示,“AliSQL的发展得到了众多智慧的支持。我们希望将过去几年沉淀的技术积累回馈到社区,帮助更多使用MySQL的个人和企业,这是社区良性发展的道路。我们也欢迎更多的开发者和技术团队加入AliSQL开源项目,使之在业内发挥更大的价值。”

和 Oracle 数据库的性能比较:

五十款阿里开源软件说明介绍

原理描述:

1. 基于Canal开源产品,获取数据库增量日志数据。 什么是Canal, 请点击

2. 典型管理系统架构,manager(web管理)+node(工作节点)

    a. manager运行时推送同步配置到node节点

    b. node节点将同步状态反馈到manager上

3. 基于zookeeper,解决分布式状态调度的,允许多node节点之间协同工作.

Github地址:https://github.com/alibaba/otter

 

16.分布式消息中间件 Metamorphosis

 

Metamorphosis (MetaQ) 是一个高性能、高可用、可扩展的分布式消息中间件,类似于LinkedIn的Kafka,具有消息存储顺序写、吞吐量大和支持本地和XA事务等特性,适用于大吞吐量、顺序消息、广播和日志数据传输等场景,在淘宝和支付宝有着广泛的应用,现已开源。

总体结构:

五十款阿里开源软件说明介绍

主要特点:

 

  • 生产者、服务器和消费者都可分布

  • 消息存储顺序写

  • 性能极高,吞吐量大

  • 支持消息顺序

  • 支持本地和XA事务

  • 客户端pull,随机读,利用sendfile系统调用,zero-copy ,批量拉数据

  • 支持消费端事务

  • 支持消息广播模式

  • 支持异步发送消息

  • 支持http协议

  • 支持消息重试和recover

  • 数据迁移、扩容对用户透明

  • 消费状态保存在客户端

  • 支持同步和异步复制两种HA

  • 支持group commit

  • 更多……

  • Github地址:https://github.com/alibaba/RocketMQ

     

    17.HTML5 互动游戏引擎 Hilo

     

    Hilo 是阿里巴巴集团开发的一款HTML5跨终端游戏解决方案,ta可以帮助开发者快速创建HTML5游戏。

    主要特性

    • Hilo 支持多种模块范式的包装版本,包括AMD,CMD,COMMONJS,Standalone多种方式接入。另外,你可以根据需要新增和扩展模块和类型;

  • 极精简的模块设计,完全面向对象;

  • 多种渲染方式, 提供DOM,Canvas,Flash,WebGL等多种渲染方案(目前已经申请专利);

  • 全端浏览器的支持和高性能方案,独有的Flash渲染方案,即使在低版本IE浏览器下也可以跑起来“酷炫”游戏; DOM渲染方案能显著解决低性能手机浏览器遇到的性能问题;

  • 物理引擎支持——Chipmunk,支持自扩展物理实现;骨骼动画支持——DragonBones,同时内建骨骼动画系统——Tahiti(目前内部使用);

  • 案例丰富,框架成熟,已经经历多届阿里巴巴双十一,年中大促互动营销活动考验;

  • 五十款阿里开源软件说明介绍

    过程描述:

    1. 增量数据收集 (创建oracle表的增量物化视图)

  • 进行全量复制

  • 进行增量复制 (可并行进行数据校验)

  • 原库停写,切到新库

  • 架构

    JStorm Performance

    五十款阿里开源软件说明介绍

    Bug 修复过程:

    五十款阿里开源软件说明介绍

    特性

    • 企业级金融产品的交互语言和视觉体系。

  • 丰富实用的 React UI 组件。

  • 基于 React 的组件化开发模式。

  • 背靠 npm 生态圈。

  • 基于 webpack 的调试构建方案,支持 ES6。

  • 26.分布式SQL引擎 Lealone

     

    Lealone 为 HBase 提供一个分布式SQL引擎,尝试将BigTable(HBase)和 RDBMS (H2数据库) 结合的项目。

    Lealone 发音 [‘li:ln] 这是我新造的英文单词,灵感来自于在淘宝工作期间办公桌上那些叫绿萝的室内植物,一直想做个项目以它命名。 绿萝的拼音是lv luo,与Lealone英文发音有点相同, Lealone是lea + lone的组合(lea 草地/草原, lone 孤独的),也算是现在的心境:思路辽阔但又孤独。 反过来念更有意思。

    应用场景:

    • 使用Lealone的分布式SQL引擎,可使用类似MySQL的SQL语法和标准JDBC API读写HBase中的数据, 支持各种DDL,支持触发器、自定义函数、视图、Join、子查询、Order By、Group By、聚合。

  • 对于Client/Server架构的传统单机RDBMS的场景,也可使用Lealone。

  • 如果应用想不经过网络直接读写数据库,可使用嵌入式Lealone。

  •  

    27.淘宝 React 框架 React Web

     

    淘宝前端团队开源项目React Web,通过与React Native一致的API构建Web应用。

    五十款阿里开源软件说明介绍

    愿景:小巧灵活,简洁实用,使用起来让人感觉愉悦。

    支持的浏览器:IE 6+, Firefox 3.5+, Safari 4+, Chrome 2+, Opera 10+

    Github地址:https://github.com/kissyteam/kissy

    33.Bug管理系统 BugFree-禅道

     

    BugFree – 借鉴微软公司软件研发理念、免费且开放源代码、基于Web的精简版Bug管理系统。

    该项目已停止维护,开发团队做了新的禅道项目。

    五十款阿里开源软件说明介绍

    淘宝很早就对数据进行过分库的处理, 上层系统连接多个数据库,中间有一个叫做DBRoute的路由来对数据进行统一访问。DBRoute对数据进行多库的操作、数据的整合,让上层系统像操作 一个数据库一样操作多个库。但是随着数据量的增长,对于库表的分法有了更高的要求,例如,你的商品数据到了百亿级别的时候,任何一个库都无法存放了,于是 分成2个、4个、8个、16个、32个……直到1024个、2048个。好,分成这么多,数据能够存放了,那怎么查询它时候,数据查询的中间件就要能 够承担这个重任了,它对上层来说,必须像查询一个数据库一样来查询数据,还要像查询一个数据库一样快(每条查询在几毫秒内完成),TDDL就承担了这样一 个工作。在外面有些系统也用DAL(数据访问层) 这个概念来命名这个中间件。
    下图展示了一个简单的分库分表数据查询策略:

    五十款阿里开源软件说明介绍

    图1. TFS逻辑架构图(来源:淘宝核心系统团队博客)

    楚材结合架构图做了进一步说明:

    1. TFS尚未对最终用户提供传统文件系统API,需要通过TFSClient进行接口访问,现有JAVA、JNI、C、PHP的客户端

  • TFS的NameServer作为中心控制节点,监控所有数据节点的运行状况,负责读写调度的负载均衡,同时管理一级元数据用来帮助客户端定位需要访问的数据节点

  • TFS的DataServer作为数据节点,负责数据实际发生的负载均衡和数据冗余,同时管理二级元数据帮助客户端获取真实的业务数据。

  •  

    37.http压力测试工具 httpsender

    httpsender是一款轻量级的http压力测试工具,由淘宝的测试工程师用Java语言开发完成。它可以指定并发连接数发送指定数目的请求,还可以自定义请求的header头。请求的URL支持通过正则表达式指定范围,同时也支持从文件随机或顺序读取。它还具备验证数据是否完整和错乱等较高级的功能。默认应用环境为Linux。

     

    下载地址:

    http://dl.dbank.com/c0vxx27aa5

    38.轻量级分布式数据访问层 CobarClient

     

    Cobar Client是一个轻量级分布式数据访问层(DAL)基于iBatis(已更名为MyBatis)和Spring框架实现。

    五十款阿里开源软件说明介绍

    taocode(淘蝌蚪)是淘宝网推出的开源平台。平台本身也是开源的。

    TaoCode的定位:大的方面来说,是平台+社区
    1).平台化
    a) 完善项目管理过程工具平台
    b) 提供更多代码级工具
    c) 提供更多文档化工具
    2).社区化
    a). 提供更好的交流平台
    b). 增加更多的持续性生态化平台功能

     

    40.关系型数据的分布式处理系统 Cobar

     

    Cobar是关系型数据的分布式处理系统,它可以在分布式的环境下像传统数据库一样为您提供海量数据服务。以下是快速启动场景:

    • 系统对外

      来源:人在梦外之梦–programmer

      声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

  • 上一篇 2019年2月16日
    下一篇 2019年2月16日

    相关推荐