阿里开源的15个顶级Java项目

上个周末抽时间整理了一些阿里开源的一些 Java 开源项目,希望对大家有帮助!这篇文章收录的所有开源项目都是还在继续维护并且可以使用的。

虽然有部分项目不是那么”完美“,但是依然非常值得我们学习。

感谢阿里技术团队的小伙伴们为 Java 开源生态做的贡献!

Canal

Canal[kə'næl] 翻译过来是水道/管道/沟渠的意思,主要用于基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。

Canal 可以帮助我们实现 MySQL 和其他数据源比如 Elasticsearch、Kafka、RocketMQ 或者另外一台 MySQL 数据库之间的数据同步。Canal 的底层原理依赖 binlog,它会模拟 MySQL 主从复制的过程,解析 binlog 将数据同步到其他的数据源。

图片

MySQL binlog(binary log 即二进制日志文件) 主要记录了 MySQL 数据库中数据的所有变化(数据库执行的所有 DDL 和 DML 语句)。因此,我们根据主库的 MySQL binlog 日志就能够将主库的数据同步到从库中。

更具体和详细的过程是这个样子的(图片来自于:《MySQL Master-Slave Replication on the Same Machine》[1]):

图片

MySQL主从复制

  1. 主库将数据库中数据的变化写入到 binlog

  2. 从库连接主库

  3. 从库会创建一个 I/O 线程向主库请求更新的 binlog

  4. 主库会创建一个 binlog dump 线程来发送 binlog ,从库中的 I/O 线程负责接收

  5. 从库的 I/O 线程将接收的 binlog 写入到 relay log 中。

  6. 从库的 SQL 线程读取 relay log 同步数据本地(也就是再执行一遍 SQL )

  • Wiki : https://github.com/alibaba/canal/wiki 。

  • Github :https://github.com/alibaba/canal 。

EasyExcel

Java 解析、生成 Excel 常用的框架有 Apache poi、jxl ,但是这两个框架使用起来都不够优雅,并且非常耗内存严重时会导致内存溢出

怎么解决这个问题呢?

推荐你使用阿里开源的 EasyExcel。正如这个项目官网介绍的那样,这是一款快速、简单避免 OOM 的 java 处理 Excel 工具。

官方是这样介绍 EasyExcel 的:

图片

  • 官方文档 :https://www.yuque.com/easyexcel 。

  • Github :https://github.com/alibaba/easyexcel 。

Arthas

图片

arthas

Arthas 是阿里开源的一个 Java 诊断工具,能够分析、诊断、定位 Java 应用问题。

图片

Arthas能帮我们解决的一些问题

Arthas 把一些常用的 Java 诊断相关的功能封装起来了,提供简单的命令行操作,功能强大。

Arthas 底层用到了字节码编程相关的技术,简单看了一下源码,应该是基于 ByteBuddy。

ByteBuddy 是一款强大的 Java 字节码增强框架,它提供了一套统一易上手的 Api,简化了字节码编码的学习和使用难度。Byte Buddy 成熟稳定,性能也还不错。像咱们平常经常使用 Mockito,Hibernate,Jackson 等知名框架都使用了 Byte Buddy。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值