阿里巴巴开源技术体系

简介:

阿里巴巴开源技术体系

阿里巴巴为开源社区贡献了大量优秀的软件产品,这些开源软件经过了阿里亿万级流量的验证,性能和稳定性都值得信赖。 现在阿里的开源软件已经成为了一个生态,这里对应用较多的的开源产品进行简单整理,大家在技术选型时可以参考。

开发框架

移动开发框架 Weex

Weex是一款跨平台移动开发工具。Weex可以让移动开发者通过简捷的前端语法写出Native级别的性能体验,而且并支持iOS、安卓、YunOS及Web等多端部署,阿里已经将Weex项目捐赠给Apache基金会开始孵化。 Weex使用 Vue 作为上层框架,并遵循 W3C 标准实现了统一的 JSEngine 和 DOM API。

Weex 表面上是一个客户端技术,但实际上它串联起了从本地开发环境到云端部署和分发的整个链路。

 

前端开发框架 KISSY

KISSY 是一款跨终端、模块化、高性能、使用简单的 JavaScript 框架。除了完备的工具集合如 DOM、Event、Ajax、Anim 等,它还提供了经典的面向对象、动态加载、性能优化解决方案。作为一款全终端支持的 JavaScript 框架,KISSY 为移动终端做了大量适配和优化,使用户的程序在全终端均能流畅运行。

模块加载框架 SeaJS

Sea.JS 是一个遵循 CommonJS 规范的模块加载框架,可用来轻松愉悦地加载任意JavaScript模块。 SeaJS 支持的标准模块遵循 Modules/Wrappings 规范的 define 形式,可运行于 Web 浏览器以及 node.JS 等环境中。

Web开发框架 Webx

Webx是一套基于Java Servlet API的通用Web框架,在Alibaba集团内部被广泛使用。

 

整个Webx框架分成三个层次:

  1. SpringExt:基于Spring,提供扩展组件的能力。它是整个框架的基础。
  2. Webx Framework:基于Servlet API,提供基础的服务,例如:初始化Spring、初始化日志、接收请求、错误处理、开发模式等。 Webx Framework只和servlet及spring相关 —— 它不关心Web框架中常见的一些服务, 例如Action处理、表单处理、模板渲染等。 因此,事实上,你可以用Webx Framework来创建多种风格的Web框架。
  3. Webx Turbine:基于Webx Framework,实现具体的网页功能,例如:Action处理、表单处理、模板渲染等。

 

基础组件

Json解析 fastjson

Fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库。Fastjson接口简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出、Android客户端等多种应用场景。

数据库连接池 Druid

Druid是一个JDBC组件,它包括三部分: 

  • DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系
  • DruidDataSource 高效可管理的数据库连接池
  • SQLParser 

数据库中间层 Taobao Distributed Data Layer

TDDL主要解决了分库分表对应用的透明化以及异构数据库之间的数据复制,它是一个基于集中式配置的 jdbc datasource实现,具有主备,读写分离,动态数据库配置等功能。

配置管理 Diamond

Diamond 一个提供持久配置的工具,支持各种持久信息(比如各种规则,数据库配置等)的发布和订阅,同类产品有百度的Disconf等。

虚拟机优化 TaobaoJVM

TaobaoJVM 基于 OpenJDK HotSpot VM,是国内第一个优化、定制且开源的服务器版Java虚拟机。目前已经在淘宝、天猫上线,全部替换了Oracle官方JVM版本,在性能,功能上都初步体现了它的价值。

定制Nginx Tengine

Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。

 

分布式组件

分布式服务框架 Dubbo

Dubbo 是一个分布式服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,以及SOA服务治理方案。 Dubbo是一个功能强大的服务治理方案。

分布式调度框架 Tbschedule

TBSchedule将调度作业从业务系统中分离出来,降低或者是消除和业务系统的耦合度,进行高效异步任务处理。目前被应用于阿里巴巴、淘宝、支付宝、京东、聚美、汽车之家、国美等很多互联网公司的流程调度系统。

 

消息中间件

高性能消息队列 Notify

Notify是一个消息中间件。应用程序或组件之间可以使用消息中间件进行可靠的异步通讯来降低系统之间的耦合度,从而提高整个系统的可扩展性和可用性。

Notify在设计思路上与传统的MQ有一定的不同,核心设计理念:

  • 为了消息堆积而设计系统
  • 无单点,可自由扩展的设计

分布式消息队列 RocketMQ

RocketMQ即阿里内部的MetaQ消息队列,是一款分布式、队列模型的消息中间件。分为Topic与Queue两种模式,Push和Pull两种方式消费,支持严格的消息顺序,亿级别的堆积能力,支持消息回溯和多个维度的消息查询。

RocketMQ借鉴了Kafka的思想,并结合互联网应用场景对性能的要求,对数据的存储结构进行了全新设计。在功能层面,增加了更适合大型互联网特色的功能点。

  • 能够保证严格的消息顺序
  • 提供丰富的消息拉取模式
  • 高效的订阅者水平扩展能力
  • 实时的消息订阅机制
  • 亿级消息堆积能力

两款消息中间件对比

  • Notify侧重于交易消息,分布式事务消息方面
  • MetaQ侧重于顺序消息场景,例如binlog同步。以及主动拉消息场景,例如流计算等

 

存储与数据处理

分布式缓存 Tair

Tair是一个高性能、分布式、可扩展、高可靠的Key-Value结构存储系统,专注于高速缓存场景。该项目诞生于淘宝,并在阿里巴巴集团内部大规模使用,是集团内调用量最大的系统之一。在多年的阿里巴巴“双十一”全球狂欢节上,为了承受数亿次的调用服务, Tair部署了将上百个集群,数千台的物理机,单节点QPS峰值近百万次,集群缓存命中率达90%以上,承担了天猫、淘宝、聚划算主站的大多数访问压力。

Taobao FileSystem

TFS是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,其设计目标是支持海量的非结构化数据。 Taobao File System(TFS)作为淘宝内部使用的分布式文件系统,针对海量小文件的随机读写访问性能做了特殊优化,承载着淘宝主站所有图片、商品描述等数据存储。

实时计算 JSTORM

JStorm 是一个类似Hadoop MapReduce的系统, 用户按照指定的接口实现一个任务,然后将这个任务递交给JStorm系统,Jstorm将这个任务跑起来,并且按7 * 24小时运行起来,一旦中间一个Worker 发生意外故障, 调度器立即分配一个新的Worker替换这个失效的Worker.JStorm是Storm的Java版本,使用Java重写的同时在其基础上进行了大幅度的改进与优化.与Hadoop对大数据进行离线全量处理相对应,JStorm主要做的是对大数据的实时增量计算与流式计算。

分布式数据库 OceanBase

OceanBase是一个支持海量数据的高性能分布式数据库系统,实现了数千亿条记录、数百TB数据上的跨行跨表事务,由淘宝核心系统研发部、运维、DBA、广告、应用研发等部门共同完成。



本文转自邴越博客园博客,原文链接:http://www.cnblogs.com/binyue/p/6953304.html,如需转载请自行联系原作者

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
5月前
|
机器学习/深度学习 分布式计算 大数据
开源大数据平台的发展
开源大数据平台的发展
66 0
|
5月前
|
人工智能 分布式计算 大数据
开源大数据平台 3.0 技术解读
阿里云研究员,阿里云计算平台事业部开源大数据平台负责人王峰围绕新一代的流式湖仓、全面 Serverless 化、更智能的开源大数据等多维度解读开源大数据平台 3.0~
1020 1
开源大数据平台 3.0 技术解读
|
存储 SQL 运维
技术白皮书—技术架构
架构演进理念 当前,分布式领域有3大技术方向:Sharding技术,NewSQL原生分布式技术,云原生DB技术。每种分布式都有其独特的优势和特点。PolarDB-X的架构继承了DRDS和X-DB技术的稳定性,结合了PolarDB的云原生技术,融入了NewSQL对于分布式数据一致性的能力,为用户提供新的“云原生+分布式”的产品体验。
606 0
技术白皮书—技术架构
|
供应链 Cloud Native 安全
OSCAR 分享之蚂蚁开源治理的方法和实践
用不用开源技术不再是个问题,如何用好开源技术才是
540 1
OSCAR 分享之蚂蚁开源治理的方法和实践
|
机器学习/深度学习 人工智能 运维
首届 TechoDay 腾讯技术开放日:云原生、大数据等基础产品一键配置,发布 7 款“轻量级”产品
首届 TechoDay 腾讯技术开放日:云原生、大数据等基础产品一键配置,发布 7 款“轻量级”产品
221 0
|
人工智能 Cloud Native 大数据
让计算机教育因云而变,阿里云正式发布云原生人才培养合作计划
阿里云呼吁计算机教育因“云”而变,正式发布云原生人才培养合作计划,预计未来三年,将为社会新增培养 10 万学生开发者[耶],全力护航计算机人才的高质量培养~
让计算机教育因云而变,阿里云正式发布云原生人才培养合作计划
|
存储 运维 监控
如何构建云原生的开源大数据平台 | 微淼基于阿里云大数据生态的应用实践
随着开源技术与云原生的高度融合,阿里云开源大数据平台在功能性、易用性、安全性上积累了丰富的实践经验,已成功服务数千家企业,助力其聚焦自身核心业务优势,缩短开发周期、简化运维难度,拓展更多业务创新。10月29日,阿里云发布“如何构建云原生的开源大数据平台”解决方案,邀请到了来自阿里云、微淼、Inmobi的技术专家为大家现身说法,呈现上云实践。
如何构建云原生的开源大数据平台 | 微淼基于阿里云大数据生态的应用实践
|
人工智能 Kubernetes Cloud Native
继《云原生开发者洞察白皮书》后【云原生人才计划之Kubernetes 技术图谱】发布!
【云原生人才计划 2.0】由阿里云开发者学堂联合 Linux Foundation 开源软件学园、阿里云云原生团队共同发起,发布《云原生人才计划之 Kubernetes 技术图谱》,帮助云原生领域开发者获得从理论基础、开源实践再到应用落地的体系化成长,推进云原生大规模普及进程。云原生人才计划 2.0 的发布相比于 2020 年的「云原生人才计划」1.0基础上,新增免费动手实验,面向 LFOSSA 以及阿里云全球培训中心两套认证体系进行针对性的课程设计,帮助开发者学习后顺利实现“一课两证”。
继《云原生开发者洞察白皮书》后【云原生人才计划之Kubernetes 技术图谱】发布!
|
人工智能 Cloud Native 安全
阿里云新品发布会周刊第109期 丨 走近云原生的开源大数据统一平台
新产品、新版本、新技术、新功能、价格调整,评论在下方,下期更新!关注更多新品发布会!
407 0
阿里云新品发布会周刊第109期 丨  走近云原生的开源大数据统一平台
|
Cloud Native 安全 云计算
伯俊软件获得阿里云原生核心授牌伙伴认证,共建新生态
数字化转型并不是简单地开发技术产品,而是对企业理念、组织架构等全方位再造,是一场全新的考验。企业数字化转型之路道阻且长,需要专业且精耕的企业“手把手”帮扶。
2340 1
伯俊软件获得阿里云原生核心授牌伙伴认证,共建新生态