阿里巴巴开源技术体系

IT人职场笔记 IT人职场笔记     2022-09-04     356

关键词:

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

开发框架

移动开发框架 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、广告、应用研发等部门共同完成。

 

mse|阿里巴巴云原生网关三位一体的选择与实践

简介:三位一体是阿里巴巴“自研”、“开源”、“商业化”采用的统一技术体系,希望以开源做内核、结合阿里巴巴内部丰富的业态和业务需求,通过自研进一步打磨软件的性能与高可用性,最终形成三位一体... 查看详情

阿里巴巴devops工具体系

简介: 随着阿里巴巴多元化业务20多年的高速发展,技术体系经历了web时代、移动化时代、数据智能时代、云计算时代等多个重大变革。在这些变革中,开发者面对的技术体系、工具体系、知识体系也在不断进化。... 查看详情

关于发展开源芯片技术体系的思考

...一篇最近发表在《中国科学院院刊》上的文章,关于开源芯片的一些思考。开源芯片生态技术体系构建面临的机遇与挑战开源,是大家很熟悉的一个词语。开源软件,是各界越来越重视的一个领域。​但是,关于... 查看详情

关于发展开源芯片技术体系的思考

...一篇最近发表在《中国科学院院刊》上的文章,关于开源芯片的一些思考。开源芯片生态技术体系构建面临的机遇与挑战开源,是大家很熟悉的一个词语。开源软件,是各界越来越重视的一个领域。​但是,关于... 查看详情

alibaba微服务技术系列「dubbo3.0技术专题」总体技术体系介绍及技术指南(序章)

...务治理与运维;Dubbo的框架结构Dubbo的发展历程2011/10/27:阿里巴巴巴宣布Dubbo开源。2012/10/23:发布最后一个版本2.5.3并停止维护更新。2017/07/31:起死回生,官方宣布开启重新更新,并会得到重点维护,参考: 查看详情

数据湖统一元数据与权限

...务4.数据湖元数据与权限展望一、元数据与权限背景介绍开源元数据体系由来、演进及问题开源大数据体系是指以Hadoop为中心的生态系统,而目前Hive是开源数仓的 查看详情

阿里云高级技术专家周晶:基于融合与协同的边缘云原生体系实践

...场景的各类问题赋能边缘场景。基于这种思考,结合阿里巴巴集团丰富的边缘生态业务,阿里云逐步构建了边缘云原生体系。在近期的CCFTF48期研讨会上,阿里云边缘云高级技术专家周晶为现场技术专家们分享了阿里... 查看详情

关于发展开源芯片技术体系的思考

...一篇最近发表在《中国科学院院刊》上的文章,关于开源芯片的一些思考。开源芯片生态技术体系构建面临的机遇与挑战开源,是大家很熟悉的一个词语。开源软件,是各界越来越重视的一个领域。​但是,关于... 查看详情

国内开源还得看阿里

1、SpringCloudAlibaba是什么SpringCloudAlibaba是阿里巴巴提供的微服务开发一站式解决方案,是阿里巴巴开源中间件与SpringCloud体系的融合。马老师左手双十一,右手阿里开源组件,不仅占据了程序员的购物车,还要攻占大家的开发工具... 查看详情

最新阿里p7技术体系:mysql安装失败的原因

...向度;其次面试官会针对你曾经做过的项目来做具体技术的交流,你对项目细节是不是掌握到位,以及java技术基础和原理掌握程序,比如并发编程以及数据库和JVM三个方面,也会交流到分布式、线程池的实现... 查看详情

2018年阿里巴巴重要开源项目汇总(持续更新中)

摘要:云栖社区特在2018年年末,将阿里巴巴的一些重要的开源项目进行整理,希望对大家有所帮助。开源展示了人类共同协作,成果分享的魅力,每一次技术发展都是站在巨人的肩膀上,技术诸多创新和发展往往就是基于开源... 查看详情

容器技术dockerk8s6阿里云容器服务体系介绍

参考https://edu.aliyun.com/lesson_2553_27362#_27362 查看详情

阿里10年分布式技术沉淀:阿里高可用体系核心缔造者全链路压测创始人告诉你!

原文链接 7月27日,云栖社区、阿里中间件将举办首届阿里巴巴中间件技术峰会,揭秘阿里10年分布式技术干货。目前活动官网已上线:https://yq.aliyun.com/promotion/262, 点击报名。本次活动看点十足,大咖齐聚、纯正干货,... 查看详情

分享阿里云开源技术学习资源

阿里云数据库https://developer.aliyun.com/learning/roadmap/database阿里云Javahttps://developer.aliyun.com/learning/roadmap/java阿里云前端https://developer.aliyun.com/learning/roadmap/frontend阿里云Pythonhttps://develop 查看详情

最新阿里p7技术体系:阿里p8跳槽到字节跳动

美团技术一面20分钟晚7点,因为想到下周一才面试,我刚准备出去打个羽毛球,北京的电话就来了。面试官各种抱歉,说开会拖延了。1、自我介绍说了很多遍了,很流畅捡重点介绍完。2、问我数据结构算法好... 查看详情

润和软件携openharmony最新成果出席2021aiot开源科技节

12月10日,2021AIOT开源科技节暨OpenHarmony技术论坛在广州召开,润和软件作为OpenHarmony项目的初始共建单位之一及积极的生态贡献者受邀出席大会。润和软件鸿蒙研发总监石磊在科技节技术论坛中发表了题为《OpenHarmony开源... 查看详情

从标准到开源,阿里大淘宝技术的“创新担当”

...,中国网络通信标准与开源在多方面取得重要进展。阿里巴巴(中国)有限公司联合国内学界提交的《可交互低延时互联网多媒体传输系统需求》(GRTN)国际标准立项提案正式获批通过、阿里巴巴大淘宝技术团队主导自... 查看详情

2016阿里巴巴73款开源产品全向图

...化新技术领域的容器,更是技术演进的最大推动力。  阿里巴巴集团已经开源115个项目,加入FSF基金会、Apache基金会、Linux 查看详情