五十款阿里开源软件说明介绍
以下文章从开源中国汇总而来: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(目前内部使用);
案例丰富,框架成熟,已经经历多届阿里巴巴双十一,年中大促互动营销活动考验;
过程描述:
-
增量数据收集 (创建oracle表的增量物化视图)
进行全量复制
进行增量复制 (可并行进行数据校验)
原库停写,切到新库
架构
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(数据访问层) 这个概念来命名这个中间件。
下图展示了一个简单的分库分表数据查询策略:
楚材结合架构图做了进一步说明:
-
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是关系型数据的分布式处理系统,它可以在分布式的环境下像传统数据库一样为您提供海量数据服务。以下是快速启动场景:
-
系统对外
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!