很高兴又和广大读者相见了!今天是第五期阿里巴巴开源技术汇总。在前面四期中我们带领大家浏览了许多阿里的开源项目,相信现在读者们跟我一样对阿里的很多优秀的项目都耳熟能详了。在今天这一期的汇总中,我们又为读者呈现了20个精彩的开源项目,20个新的面孔,现在就和我们一起走近它们,领略它们的风采吧!
1.TimeTunnel
【项目简介】
TimeTunnel(简称TT)是一个基于thrift通讯框架搭建的实时数据传输平台,具有高性能、实时性、顺序性、高可靠性、高可用性、可扩展性等特点。目前TimeTunnel在淘宝广泛的应用于日志收集、数据监控、广告反馈、量子统计、数据库同步等领域。
【架构图】
【源码托管地址】 https://github.com/huolong/timetunnel
2.tair-client-java
【项目简介】
tair-client-java 是淘宝 Tair 这个分布式 Key/Value 存储系统的 Java 客户端开发包。
Tair的java客户端使用纯java开发,底层使用mina 通信框架,接口简洁易用。经过生产环境的压力测试,稳定可靠。
【源码托管地址】 https://github.com/xpsky202/tair-client
3.Co
【项目简介】
Tedis是另一个redis的java客户端,Tedis的目标是打造一个可在生产环境直接使用的高可用Redis解决方案。它具有如下特性:
①高可用,Tedis使用多写随机读做HA确保redis的高可用
②高性能,使用特殊的线程模型,使redis的性能不限制在客户端
③多种使用方式,如果你只有一个redis实例,并不需要tedis的HA功能,可以直接使用④tedis-atomic;使用tedis的高可用功能需要部署多个redis实例使用tedis-group
⑤两种API,包括针对byte的底层api和面向object的高层api
⑥多种方便使用redis的工具集合,包括mysql数据同步到redis工具,利用redis做搜索工具等
【源码托管地址】 https://github.com/justified/tedis
4.nginx-tfs
【项目简介】
nginx-tfs 是 Nginx 的扩展模块用于访问淘宝的 TFS 文件系统。这个模块实现了TFS的客户端,为TFS提供了RESTful API。TFS的全称是Taobao File System,是淘宝开源的一个分布式文件系统
【架构图】
【源码托管地址】 https://github.com/alibaba/nginx-tfs
5.Diamond
【项目简介】
diamond 一个提供持久配置的工具,支持各种持久信息(比如各种规则,数据库配置等)的发布和订阅。
【架构图】
【源码托管地址】 https://github.com/takeseem/diamond
6.nQuery
【项目简介】
nQuery 引擎是来自阿里的数据中间层,主要为应对大数据场景的在线查询的三大难题:长数据、宽数据、杂数据, 广泛参考 Big Query、Impala、 PL/SQL、MySQL 、PgSQL、ql.io 等,结合自身业务特点,自行精心 设计、实现的一套类SQL 语言(nSQL)及解析、执行引擎,它有着广泛的应用场景与很强的实用 价值,能对 *SQL 型数据库提供翻译与兼容,对K/V 数据如HBase、OTS 或其他通用的数据源, 它可以作为一个简洁强大的SQL 查询引擎,并以扩展SQL 的创新方式来支持数据JOIN, 结合 NodeJS 框架,完全可以提供统一的SQL接口的高并发、高性能的的在线查询服务,解耦前后端, 极大的降低大数据场景下产品开发复杂度。
【源码托管地址】 https://github.com/alibaba/nquery
7.AnyProxy
【项目简介】
AnyProxy 是一个基于 Node.js 的代理服务器。代理服务器是个中间人,站在了客户端和服务端中间,双方通信的每个比特,都会滴水不漏地经过它。它控制了完整的请求头、请求体、响应头、响应体,可以在客户端与服务端都无感知的情况下介入处理所有的流程。只要代理服务器可以实现灵活配置,就可以满足前端工程师们的需求。AnyProxy具有以下特性:
①支持 https 明文代理
②支持低网速模拟
③支持二次开发,可以用 javascript 控制代理的全部流程,搭建前端个性化调试环境
④提供web版界面,观测请求情况
【架构图】
【源码托管地址】 https://github.com/alibaba/anyproxy
8.transmittable-thread-local
【项目简介】
transmittable-thread-local是阿里用Java开发的用于多线程的的组件。以往在JDK的InheritableThreadLocal类可以完成父子线程值的传递,但对于使用线程池等会缓存线程的组件的情况,线程由线程池创建好,并且线程是缓存起来反复使用的;这时父子线程关系的ThreadLocal值传递已经没有意义,应用中要做ThreadLocal值传递,实际上是在把 任务提交给线程池时的ThreadLocal值传递到任务执行时。
【架构图】
【源码托管地址】 https://github.com/alibaba/transmittable-thread-local
9.dropincc.java
【项目简介】
dropincc.java 是一个简单、好用的语法解析器生成器,它专为java语言环境下,实施DSL方案而设计。整体上它具有如下特点:使用纯java语法(Fluent Interface)制定用户的词法、语法规则;jdk1.6 compiler API动态编译为字节码;自动管理字节码、用户无需关心具体生成的解析器源码;专为DSL打造,相对与使用其它常见工具(javacc, antlr等)做DSL解析,代码量急剧下降;上手较为容易,让用户更加关注自身业务内容;需要jdk1.6或以上版本运行,无任何其它依赖;识别LL(*)语法
【源码托管地址】 https://github.com/pfmiles/dropincc.java
10.MyRelay
【项目简介】
MyRelay是一款用C语言实现的性能优异的mysql代理插件,支持如下特性:
①采用事件驱动、异步、非阻塞的设计模式,性能优秀
②采用mysql原生协议,对应用层透明
③支持mysql读写分离
④提供mysql连接池管理
⑤支持mysql冗余、健康检查
⑥提供mysql的查询日志,方便对应用层进行分析
⑦支持mysql配置动态加载
并且MyRelay可以应用于以下场景:
①Mysql数据库集群访问,负载均衡、冗余、健康检查等
②Mysql读写分离
【源码托管地址】 https://github.com/kulv2012/myrelay
11.Flex GateWay
【项目简介】
Flex GateWay 提供了 VPN、SNAT 基础服务。它主要提供以下几点功能:
①IPSec Site-to-Site 功能。可快速的帮助用户将两个不同的VPC 私网以IPSec Site-to-Site 的方式连接起来。
②拨号VPN 功能。可让用户通过拨号方式,接入VPC 私网,进行日常维护管理。
③SNAT 功能。可方便的设置Source NAT,以让VPC 私网内的VM 通过Gateway VM 访问外网。
【源码托管地址】 https://github.com/alibaba/FlexGW
12.nginx-http-sysguard
【项目简介】
nginx-http-sysguard 是阿里巴巴开发的一个 Nginx 模块,用来保护运行 Nginx 服务器的系统负载和内存使用不会太高
【源码托管地址】 https://github.com/alibaba/nginx-http-sysguard
13.Tbra
【项目简介】
TBra是淘宝UED自主开发(并持续开发中)的JavaScript框架,它在YUI的基础上,提供了更多适合淘宝及其他中文网站应用的JavaScript UI效果和工具。该项目已经全面应用在淘宝的网站上,经受了超大访问量和复杂客户端环境的检验。TBra是开源软件,遵循BSD协议,允许使用者可以随意地使用、修改和分发它。
【源码托管地址】 http://code.google.com/p/tbra
14.Sqlautoreview
【项目简介】
淘宝开源的SQLautoReview是一个SQL自动化审核的程序,三大功能:1,解析sqlmap,利用dom4j从xml文件解析sql语句,并插入数据库中。2,对sql语句进行分析,创建该语句的sql语句的索引脚本。3,对新生成的索引和原有(一般为线上)数据库的索引进行重用或者合并。该代码应用场景是对新应用中增加的sql语句,加入到线上数据库中,更新已有索引,提高效率。
【架构图】
【源码托管地址】 https://github.com/taobao/sqlautoreview
15.Magix
【项目简介】
Magix 是用于构建大型富交互单页应用的前端MVC框架。它提供了基于树状结构的视图系统,页面初始渲染以及URL 变动都将从根 View 开始逐层进行, 这使得局部变化井然有序;同时遵循Magix的开发约定可以很好的控制页面内存的使用,避免单页系统常见却致命的内存泄露和过度膨胀等问题。Magix 适合用来构建大型的,面向前后端开发者以及 IE6 友好的,基于 MVC 结构和 Hash 驱动的 OPOA(One Page One Application)应用。
【源码托管地址】 https://github.com/thx/magix
16.Aliyun-OSS
【项目简介】
aliyun OSS(open storage service) 的 Node.js 客户端,友好的生成器,是 OSS Restful API 的封装。
【架构图】
【源码托管地址】 https://github.com/ali-sdk/ali-oss
17.Alice
【项目简介】
Alice 是支付宝前端样式解决方案小组的项目代称。她包括构建样式库的 样式库解决方案,帮助团队理解新技术的 W3C标准文档库 和正在进行中 实验项目 等; 也是团队的代称。目前 Alice 的主要职责是提供 CSS 和 HTML 方面的技术支持和解决方案开发。
【架构图】
【源码托管地址】 https://github.com/sofish/Alice
18.Autoresponsive
【项目简介】
autoResponsive 是基于 KISSY 1.3.0 或更高版本的自适应布局组件。它具有以下几点特点:
①支持条件排序、随机排序
②支持特定条件的过滤排序
③兼容KISSY瀑布流组件
④支持动态自定义配置
⑤支持css3特效、用户自定义特效
⑥支持边距自定义
⑦排序元素支持复杂dom结构
⑧支持自定义展示方向
【源码托管地址】 https://github.com/kissygalleryteam/autoResponsive
19.Wasp
【项目简介】
Wasp 是类Google MegaStore & F1的分布式关系数据库。它是分布式的、支持SQL的、事务型数据库。它目前可以有以下特性:
①支持索引类型:本地索引、全局索引
②支持分区(分区可再分区、合并、移动部署),可线性拓展
③支持数据类型:int64、int32、string、double、float、datetime
④SQL语法特性:select、update、delete、insert、create table、delete table、create index、drop index等
⑤支持跨行事务,支持NoSQl之上的索引与实体的ACID
⑥支持MVCC
⑦JDBC访问接口
⑧易用的监控:Ganglia - metrics
【架构图】
【源码托管地址】 https://github.com/alibaba/wasp
20.Brix
【项目简介】
Brix 是基于 KISSY(PC端)和 Zepto、SeaJS 等(移动端)底层类库的应用层组件框架。 目标是打造面向前台展示型业务、后台管理型业务、移动高端版业务的通用且易用的一淘UX前端组件平台。Brix主要实现了三大目标:
①组件开发规范的确立
②组件初始化和销毁的管理
③组件、模块基于数据驱动的局部刷新