1
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);
- 2
- JVM-Sandbox
JVM-Sandbox,JVM 沙箱容器, 一种基于 JVM 的非侵入式运行期 AOP 解决方案.
JVM-SANDBOX 的核心功能:
实时无侵入 AOP 框架
在常见的 AOP 框架实现方案中, 有静态编织和动态编织两种.
静态编织静态编织发生在字节码生成时根据一定框架的规则提前将 AOP 字节码插入到目标类和方法中, 实现 AOP;
动态编织动态编织则允许在 JVM 运行过程中完成指定方法的 AOP 字节码增强. 常见的动态编织方案大多采用重命名原有方法, 再新建一个同签名的方法来做代理的工作模式来完成 AOP 的功能 (常见的实现方案如 CgLib), 但这种方式存在一些应用边界:
侵入性对被代理的目标类需要进行侵入式改造. 比如: 在 Spring 中必须是托管于 Spring 容器中的 Bean
固化性目标代理方法在启动之后即固化, 无法重新对一个已有方法进行 AOP 增强
3
分布式 RPC 服务框架 Dubbo
Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架, 使得应用可通过高性能的 RPC 实现服务的输出和输入功能, 可以和 Spring 框架无缝集成.
主要核心部件:
Remoting: 网络通信框架, 实现了 sync-over-async 和 request-response 消息机制
RPC: 一个远程过程调用的抽象, 支持负载均衡, 容灾和集群功能
Registry: 服务目录框架用于服务的注册和服务事件发布和订阅
工作原理:
4
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
- 5
Ant Design Pro
Ant Design Pro 是一套开箱即用的中台前端 / 设计解决方案.
特性
优雅美观: 基于 Ant Design 体系精心设计
常见设计模式: 提炼自中后台应用的典型页面和场景
最新技术栈: 使用 React/dva/antd 等前端前沿技术开发
响应式: 针对不同屏幕大小设计
主题: 可配置的主题满足多样化的品牌诉求
国际化: 内建业界通用的国际化方案
最佳实践: 良好的工程实践助您持续产出高质量代码
Mock 数据: 实用的本地数据调试方案
UI 测试: 自动化测试保障前端产品质量
6
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 的监控实现:
7
NG-ZORRO
NG-ZORRO 是一个企业级的 UI 组件库, 是 Ant Design 的 Angular 4.0 实现, 开发和服务于企业级后台产品.
特性
提炼自企业级中后台产品的交互语言和视觉风格, 定期与 Ant Design React 版本保持更新一致.
开箱即用的高质量 Angular 组件.
使用 TypeScript 构建, 提供完整的类型定义文件.
支持环境
现代浏览器和 IE9 以上 (需要 polyfills).
兼容版本
当前支持 Angular 4.0.0 版本
8
容器技术 Pouch
2017 年杭州云栖大会中, 阿里巴巴正式宣布, 自主研发的容器技术 Pouch 将以开源的形式回馈社区, 希望与开发者共同推动中国容器技术发展, 共建容器生态.
阿里 Pouch 并不是一个完全创新的技术. 最早, 阿里基于 LXC 技术为集团业务提供容器服务, 2011 年, 阿里自研容器技术 T4,2016 年, 阿里内部将容器技术重新命名为 Pouch, 并于去年支持集团内部大量核心业务, 比如电商平台核心业务, 主要应用和部分数据库, 蚂蚁金服的支付业务, 淘宝网的交易业务等等.
关于 Pouch 的命名由来, 源于阿里作为开放赋能者, 注重用户场景应用的初衷. 正如阿里巴巴技术专家孙宏亮所言, Pouch 作为从阿里巴巴集团内部大规模场景自研技术, 相比 docker,rkt 等容器技术, 差异化的核心价值体现在以下几个方面:
富容器技术: 容器内部的应用体验如虚拟机般, 拥有 init 进程, 且富含系统服务;
丰富的隔离保障: 隔离安全避无可避, 内核加固与轻量级虚拟机支持, 丰富隔离维度;
P2P 镜像分发: 超大规模场景下的镜像分发, P2P 的方式缓解网络负载;
内核兼容性: 企业内核的升级往往较为缓慢, 最大限度适配现有底层基础设施.
9
开源数据库 AliSQL
AliSQL 是基于 MySQL 官方版本的一个分支, 由阿里云数据库团队维护, 目前也应用于阿里巴巴集团业务以及阿里云数据库服务. 该版本在社区版的基础上做了大量的性能与功能的优化改进. 尤其适合电商, 云计算以及金融等行业环境.
阿里云数据库资深专家丁奇介绍, AliSQL 版本在强度和广度上都经历了极大的考验. 最新的 AliSQL 版本不仅从其他开源分支比如: Percona,MariaDB,webScaleSQL 等社区汲取精华, 也沉淀了阿里巴巴多年在 MySQL 领域的经验和解决方案. AliSQL 增加更多监控指标, 并针对电商秒杀, 物联网大数据压缩, 金融数据安全等场景提供个性化的解决方案.
"在通用基准测试场景下, AliSQL 版本比 MySQL 官方版本有着 70% 的性能提升. 在秒杀场景下, 性能提升 100 倍." 丁奇表示.
阿里云资深总监李津表示,"AliSQL 的发展得到了众多智慧的支持. 我们希望将过去几年沉淀的技术积累回馈到社区, 帮助更多使用 MySQL 的个人和企业, 这是社区良性发展的道路. 我们也欢迎更多的开发者和技术团队加入 AliSQL 开源项目, 使之在业内发挥更大的价值."
和 Oracle 数据库的性能比较:
10
可视化编码的图形语法 AntV - G2
G2 是一套基于可视化编码的图形语法, 以数据驱动, 具有高度的易用性和扩展性, 用户无需关注各种繁琐的实现细节, 一条语句即可构建出各种各样的可交互的统计图表.
同时, G2 也是 AntV 最重要的组成, 始于The Grammar of Graphics一书描述的视觉编码语法系统 (这也是 G2 项目命名的由来).
特性
简单, 易用: 从数据出发, 仅需几行代码就可以轻松获得想要的图表展示效果
完备的可视化编码: 以数据驱动, 提供了从数据到图形的完整映射
强大的扩展能力: 任何图表, 都可以基于图形语法灵活绘制, 满足你无限的创意
示例
柱状图
完整代码:
- <!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>
- END
来源: https://juejin.im/entry/5ac950536fb9a028ce7bdb4c