阿里前10大开源项目,致敬!

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

JSON处理器 fastjson

fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。

主要特点:

  • 快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson)
  • 强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)
  • 零依赖(没有依赖其它任何类库除了JDK)

示例代码:

import com.alibaba.fastjson.JSON;
Group group = new Group();
group.setId(0L);
group.setName("admin");
User guestUser = new User();
guestUser.setId(2L);
guestUser.setName("guest");
User rootUser = new User();
rootUser.setId(3L);
rootUser.setName("root");
group.getUsers().add(guestUser);
group.getUsers().add(rootUser);
String jsonString = JSON.toJSONString(group);
System.out.println(jsonString);

JVM-Sandbox JVM-Sandbox,JVM 沙箱容器,一种基于 JVM 的非侵入式运行期 AOP 解决方案。
7ada5c6bd47cc1a2790c093ca74571c8ae2c1b0c

JVM-SANDBOX 的核心功能:

实时无侵入 AOP 框架

在常见的 AOP 框架实现方案中,有静态编织和动态编织两种。

1 静态编织
静态编织发生在字节码生成时根据一定框架的规则提前将 AOP 字节码插入到目标类和方法中,实现 AOP;
2 动态编织
动态编织则允许在 JVM 运行过程中完成指定方法的 AOP 字节码增强。常见的动态编织方案大多采用重命名原有方法,再新建一个同签名的方法来做代理的工作模式来完成 AOP 的功能(常见的实现方案如 CgLib),但这种方式存在一些应用边界:
  • 侵入性
对被代理的目标类需要进行侵入式改造。比如:在 Spring 中必须是托管于 Spring 容器中的 Bean
  • 固化性

目标代理方法在启动之后即固化,无法重新对一个已有方法进行 AOP 增强

分布式RPC服务框架 Dubbo

Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring 框架无缝集成。

主要核心部件:

  • Remoting: 网络通信框架,实现了 sync-over-async 和 request-response 消息机制
  • RPC: 一个远程过程调用的抽象,支持负载均衡、容灾和集群功能
  • Registry: 服务目录框架用于服务的注册和服务事件发布和订阅

工作原理:

e34c0c61134a5df8d4e9f0e423ce77f103818aa3

Node.js框架 Egg.js

Egg.js,为企业级框架和应用而生,是阿里开源的企业级 Node.js 框架。

特性

  • 深度框架定制
  • 高度可扩展的插件机制
  • 内置多进程管理
  • 基于 koa 开发,性能优异
  • 框架稳定,测试覆盖率高

开始使用

npm install egg-init -g
$egg-init --type simple showcase && cd showcase
$npm install
$npm run dev
$open http://localhost:7001

Ant Design Pro

Ant Design Pro 是一套开箱即用的中台前端/设计解决方案。

db3450b64d3307d0cfcc410d10f4c5ef8c0c627b

特性

  • 优雅美观:基于 Ant Design 体系精心设计
  • 常见设计模式:提炼自中后台应用的典型页面和场景
  • 最新技术栈:使用 React/dva/antd 等前端前沿技术开发
  • 响应式:针对不同屏幕大小设计
  • 主题:可配置的主题满足多样化的品牌诉求
  • 国际化:内建业界通用的国际化方案
  • 最佳实践:良好的工程实践助您持续产出高质量代码
  • Mock 数据:实用的本地数据调试方案
  • UI 测试:自动化测试保障前端产品质量
JDBC连接池,监控组件Druid

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

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

Druid可以做什么?

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的监控实现:

9aee90b35b9d4da96347fdb65e4fb9fadbcdd1d7

NG-ZORRO

NG-ZORRO 是一个企业级的 UI 组件库,是 Ant Design 的 Angular 4.0 实现,开发和服务于企业级后台产品。

特性

  • 提炼自企业级中后台产品的交互语言和视觉风格,定期与 Ant Design React 版本保持更新一致。
  • 开箱即用的高质量 Angular 组件。
  • 使用 TypeScript 构建,提供完整的类型定义文件。

支持环境

  • 现代浏览器和 IE9 以上(需要 polyfills)。

兼容版本

当前支持 Angular 4.0.0 版本

47f8118d7e47ad64981611d2b1214c00f8636bbb

容器技术Pouch

2017年杭州云栖大会中,阿里巴巴正式宣布,自主研发的容器技术 Pouch 将以开源的形式回馈社区,希望与开发者共同推动中国容器技术发展,共建容器生态。

30ca8c669b0aea6410a2a861e199aa2017151888

阿里Pouch并不是一个完全创新的技术。最早,阿里基于LXC技术为集团业务提供容器服务,2011年,阿里自研容器技术T4,2016年,阿里内部将容器技术重新命名为Pouch,并于去年支持集团内部大量核心业务,比如电商平台核心业务、主要应用和部分数据库、蚂蚁金服的支付业务,淘宝网的交易业务等等。

关于Pouch的命名由来,源于阿里作为开放赋能者,注重用户场景应用的初衷。正如阿里巴巴技术专家孙宏亮所言,Pouch作为从阿里巴巴集团内部大规模场景自研技术,相比docker、rkt等容器技术,差异化的核心价值体现在以下几个方面:

  • 富容器技术:容器内部的应用体验如虚拟机般,拥有init进程,且富含系统服务;
  • 丰富的隔离保障:隔离安全避无可避,内核加固与轻量级虚拟机支持,丰富隔离维度;
  • P2P镜像分发:超大规模场景下的镜像分发,P2P的方式缓解网络负载;
  • 内核兼容性:企业内核的升级往往较为缓慢,最大限度适配现有底层基础设施。

开源数据库AliSQL

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

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

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

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

和 Oracle 数据库的性能比较:

972242465d8ae177d1dea4106477248f8a573ec8

可视化编码的图形语法AntV - G2

G2 是一套基于可视化编码的图形语法,以数据驱动,具有高度的易用性和扩展性,用户无需关注各种繁琐的实现细节,一条语句即可构建出各种各样的可交互的统计图表。

同时,G2 也是 AntV 最重要的组成,始于《The Grammar of Graphics》一书描述的视觉编码语法系统(这也是 G2 项目命名的由来)。

特性

  • 简单、易用:从数据出发,仅需几行代码就可以轻松获得想要的图表展示效果
  • 完备的可视化编码:以数据驱动,提供了从数据到图形的完整映射
  • 强大的扩展能力:任何图表,都可以基于图形语法灵活绘制,满足你无限的创意

示例

柱状图

436ac285ffe779c2f253e9b330f6dfc0a165427c

完整代码:

<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>柱状图</title> <!-- 引入 G2 文件 --> <script src="https://gw.alipayobjects.com/as/g/datavis/assets/1.0.5/g2/3.0.0/g2.min.js"></script> </head> <body> <!-- 创建图表容器 --> <div id="c1"></div> <script> const data = [
{ genre: 'Sports', sold: 275 },
{ genre: 'Strategy', sold: 115 },
{ genre: 'Action', sold: 120 },
{ genre: 'Shooter', sold: 350 },
{ genre: 'Other', sold: 150 }
]; // G2 对数据源格式的要求,仅仅是 JSON 数组,数组的每个元素是一个标准 JSON 对象。 // Step 1: 创建 Chart 对象 const chart = new G2.Chart({
container: 'c1', // 指定图表容器 ID width : 600, // 指定图表宽度 height : 300 // 指定图表高度 });
// Step 2: 载入数据源 chart.source(data);
// Step 3:创建图形语法,绘制柱状图,由 genre 和 sold 两个属性决定图形位置,genre 映射至 x 轴,sold 映射至 y 轴 chart.interval().position('genre*sold').color('genre')
// Step 4: 渲染图表 chart.render();
</script> </body></html>

原文发布时间为:2018-02-26
本文作者:蜗牛
本文来自云栖社区合作伙伴“ Java架构师之路”,了解相关信息可以关注“ Java架构师之路”。
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5天前
|
Cloud Native 测试技术 Go
开源之夏经验分享|MOSN 社区韦鑫:做自己认为很酷的事
韦鑫是南京航空航天大学计算机科学与技术学院研三学生,研究方向为分布式系统。作为HTNN社区贡献者,他参与了开源之夏2024 MOSN社区项目,负责将Sentinel-golang流量控制能力集成到MOSN on Envoy(MoE)生态中。通过该项目,韦鑫不仅提升了对服务网格和云原生网关的理解,还学会了如何开发HTNN插件,并深刻体会到严格的单元测试、集成测试及CI/CD对项目的重要性。他的经历展示了积极参与开源项目的价值,鼓励更多人勇敢尝试并投身于开源社区。
开源之夏经验分享|MOSN 社区韦鑫:做自己认为很酷的事
|
5天前
|
Cloud Native API 开发者
开源之夏经验分享|Layotto 社区 郑浩宁:尝试,就会有收获!
郑浩宁,福州大学软件工程专业大三学生,致力于微服务与云原生领域。作为 Layotto 社区贡献者,他参与了开源之夏 2024,完成了“对齐 Layotto 对 Dapr 的依赖”项目,将 Layotto 的 Dapr 兼容版本升级到 v1.13.0。
开源之夏经验分享|Layotto 社区 郑浩宁:尝试,就会有收获!
|
消息中间件 架构师 算法
好家伙!全网开源对标P5~P7程序员技术成长路线,阿里这次是真卷
今年的程序员可以说是最焦虑的一个群体了,面试找工作投简历没人理,有面试机会也面试不过,面试进去还干不长...于是,程序员们纷纷直呼:互联网寒冬又双叒叕来了,环境不好努力也没用躺平算了。
317 1
好家伙!全网开源对标P5~P7程序员技术成长路线,阿里这次是真卷
|
10月前
|
程序员 项目管理 开发工具
gitt开源项目的意义,公司为什么会对在gitt上有开源项目的人更大机会
gitt开源项目的意义,公司为什么会对在gitt上有开源项目的人更大机会
117 0
|
开发者
开发者投身开源项目的能够获得什么?
作为开发者,编程不仅是工作和饭碗,也是兴趣爱好的体现。虽然说有一部分是为了生活才选择了编程开发,但是大部分开发者是因为兴趣和爱好才加入编程队伍中的。不知不觉IT互联网行业已经发展了二十多年,基于开源的软件及应用也是有了快速的发展,越来越多的开发者投入到了开源项目的贡献中来,这让开发者和开源项目建立了很好的连接。
414 1
开发者投身开源项目的能够获得什么?
|
SQL 机器学习/深度学习 人工智能
隐语开源社区【精选问答】第三期
隐语开源社区【精选问答】第三期
459 0
EMQ
|
SQL 前端开发 安全
2022 开源之夏|EMQ 三大开源项目开发圆满收官
与新生力量共同打造高性能、高可用、高安全的世界级开源软件产品,服务人类未来产业与社会。
EMQ
222 0
2022 开源之夏|EMQ 三大开源项目开发圆满收官
|
边缘计算 运维 Kubernetes
从旁观者到贡献者:经历 OpenYurt 的“开源之夏”,我们想让更多人体验社区的魅力
在“开源之夏——OpenYurt 体验中心”,同学们能够以低门槛的方式快速上手并参与到项目当中,解决实际问题。从旁观者到社区贡献者的角色转变之间,让我们通过采访内容,一起看看他们的真实感受,以及有哪些意想不到的收获。
从旁观者到贡献者:经历 OpenYurt 的“开源之夏”,我们想让更多人体验社区的魅力
|
Dragonfly Java 中间件
阿里巴巴26个屌炸天的开源项目,你知道几个?
阿里巴巴26个屌炸天的开源项目,你知道几个?
336 0
阿里巴巴26个屌炸天的开源项目,你知道几个?
|
机器学习/深度学习 人工智能 算法
关于开源,我们和谷歌开源奖获得者、DMLC成员唐源聊了聊
TensorFlow 和 DMLC(分布式深度机器学习社区)这两个开源社区在今天围绕人工智能的计算机行业享有极大声誉。作为这两个开源项目的成员、目前任职 Uptake 数据科学家的唐源(Terry Tang)正在带领团队研发用于多个物联网垂直领域的数据科学引擎;同时,他也是开源软件社区内一位非常活跃的贡献者,是 TensorFlow、XGBoost、MXNet 等软件的 committer。日前,机器之心对这位开源社区的活跃参与者进行了一次交流。他分享了自己在开源上的人生经历和经验,同时也呼吁大家能够更多地参与到开源项目的发展和建设中来。
256 0
关于开源,我们和谷歌开源奖获得者、DMLC成员唐源聊了聊

热门文章

最新文章