前言
最近趁着国庆节放假休息,特地整理了一下,阿里巴巴开源的10款神级项目。
我的个人技术博客:https://susan.net.cn
这些开源项目中的绝大多数,我都在实际工作中用过,或者有同事用过。确实挺不错,挺有价值的,现在推荐给大家。
最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。
BAT大佬写的刷题笔记,让我offer拿到手软
1. Druid
Druid自称是Java语言中最好的数据库连接池,它能够提供强大的监控和扩展功能。监控后台如下图所示:
Dubbo的主要优点如下:
- 基于透明接口的RPC
- 智能负载均衡
- 自动服务注册和发现
- 高扩展性
- 运行时流量路由
- 可视化服务治理
- 云原生友好
github地址: https://github.com/apache/dubbo
maven中央仓库: https://mvnrepository.com/artifact/com.alibaba/dubbo/
配置maven依赖:
4. Rocketmq
Apache RocketMQ是一个分布式消息和流媒体平台,具有低延迟、高性能和可靠性、万亿级容量和灵活的可扩展性。
它提供了多种功能:
- 消息传递模式,包括发布/订阅、请求/回复和流媒体
- 金融级交易消息
- 基于DLedger的内置容错和高可用配置选项
- 多种跨语言客户端,如Java、C/C++、Python、Go
- 可插拔传输协议,例如 TCP、SSL、AIO
- 内置消息追踪能力,也支持opentracing
- 多功能大数据和流媒体生态系统集成
- 按时间或偏移量的消息追溯
- 可靠的 FIFO 和同一队列中的严格有序消息传递
- 高效的拉推式消费模式
- 单个队列百万级消息累积能力
- 多种消息传递协议,如 JMS 和 OpenMessaging
- 灵活的分布式横向扩展部署架构
- 闪电般的批量消息交换系统
- 各种消息过滤机制,例如 SQL 和 Tag
- 用于隔离测试和云隔离集群的 Docker 镜像
- 用于配置、指标和监控的功能丰富的管理仪表板
- 认证和授权
- 免费的开源连接器,用于源和接收器
rocketmq后台管理界面:
github地址: https://alibaba.github.io/arthas/
maven中央仓库: https://mvnrepository.com/artifact/com.taobao.arthas/arthas-spring-boot-starter
在目标机器执行如下命令即可启动arthas:
5. Nacos
Nacos是一个易于使用的平台,专为动态服务发现和配置以及服务管理而设计。它可以帮助您轻松构建云原生应用程序和微服务平台。
服务是Nacos的一等公民。Nacos 支持几乎所有类型的服务,例如Dubbo/gRPC 服务、Spring Cloud RESTFul 服务或Kubernetes 服务。
Nacos 提供了四大功能。
- 。Nacos 使服务通过 DNS 或 HTTP 接口注册自己和发现其他服务变得简单。Nacos 还提供服务的实时健康检查,以防止向不健康的主机或服务实例发送请求。
- 。动态配置服务允许您在所有环境中以集中和动态的方式管理所有服务的配置。Nacos 无需在更新配置时重新部署应用程序和服务,这使得配置更改更加高效和敏捷。
- 。Nacos 支持加权路由,让您更容易在数据中心内的生产环境中实现中层负载均衡、灵活的路由策略、流量控制和简单的 DNS 解析服务。它可以帮助您轻松实现基于 DNS 的服务发现,并防止应用程序耦合到特定于供应商的服务发现 API。
- 。Nacos 提供了一个易于使用的服务仪表板,帮助您管理您的服务元数据、配置、kubernetes DNS、服务健康和指标统计。
Nacos 地图:
github地址: https://github.com/alibaba/nacos
maven中央仓库: https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-discovery
6. easyexcel
Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。
easyexcel重写了poi对07版Excel的解析,一个3M的excel用POI sax解析依然需要100M左右内存,改用easyexcel可以降低到几M,并且再大的excel也不会出现内存溢出;03版依赖POI的sax模式,在上层做了模型转换的封装,让使用者更加简单方便。
64M内存1分钟内读取75M(46W行25列)的Excel
生态系统景观:
单机房复制示意图:
github地址: https://github.com/alibaba/otter
maven中央仓库: https://mvnrepository.com/artifact/com.alibaba.otter/canal.client
9. P3C
P3C插件呈现了阿里巴巴 Java 编码指南,它整合了阿里巴巴集团技术团队多年来的最佳编程实践。由于我们鼓励重用和更好地理解彼此的程序,因此大量 Java 编程团队对跨项目的代码质量提出了苛刻的要求。
阿里巴巴过去见过很多编程问题。例如,有缺陷的数据库表结构和索引设计可能会导致软件架构缺陷和性能风险。另一个例子是混乱的代码结构难以维护。此外,未经身份验证的易受攻击的代码容易受到黑客的攻击。为了解决这些问题,我们为阿里巴巴的Java开发人员编写了这份文档。
更多信息请参考阿里巴巴Java编码指南:
- 中文版:阿里巴巴Java开发手册
- 英文版:Alibaba Java Coding Guidelines
该项目由3部分组成:
- PMD 实现
- IntelliJ IDEA 插件
- Eclipse 插件
四十九条规则是基于PMD实现的,更多详细信息请参考P3C-PMD文档。IDE 插件(IDEA 和 Eclipse)中实现的四个规则如下:
-
[Mandatory]禁止使用已弃用的类或方法。
注意:例如,应该使用 decode(String source, String encode) 而不是不推荐使用的方法 decode(String encodeStr)。一旦接口被弃用,接口提供者就有义务提供一个新的接口。同时,客户端程序员有义务检查它的新实现是什么。 -
[Mandatory]来自接口或抽象类的重写方法必须用 @Override 注释标记。反例:对于 getObject() 和 get0bject(),第一个是字母“O”,第二个是数字“0”。为了准确判断覆盖是否成功,需要一个@Override注解。同时,一旦抽象类中的方法签名发生变化,实现类将立即 告编译时错误。
-
[Mandatory] 静态字段或方法应直接通过其类名而不是其对应的对象名来引用。
-
[Mandatory] hashCode 和 equals 的用法应该遵循:
- 如果 equals 被覆盖,则覆盖 hashCode。
- 这两个方法必须为 Set 重写,因为它们用于确保不会在 Set 中插入重复的对象。
- 如果使用自定义对象作为 Map 的键,则必须覆盖这两个方法。注意:String 可以用作 Map 的键,因为这两个方法已经被重写。
使用p3c插件的效果:

最新版阿里巴巴Java开发手册下载地址:
https://github.com/alibaba/p3c/blob/master/Java开发手册(嵩山版).pdf
github地址:https://github.com/alibaba/p3c/tree/master/idea-plugin
最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。
BAT大佬写的刷题笔记,让我offer拿到手软
10. Spring Cloud Alibaba
Spring Cloud Alibaba 为分布式应用开发提供一站式解决方案。它包含开发分布式应用程序所需的所有组件,使您可以轻松地使用 Spring Cloud 开发应用程序。
使用Spring Cloud Alibaba,您只需添加一些注解和少量配置,即可将Spring Cloud应用连接到阿里巴巴的分布式解决方案,并通过阿里巴巴中间件构建分布式应用系统。
主要功能如下:
- :默认支持 HTTP 服务的流量控制。您还可以使用注释自定义流量控制和服务降级规则。规则可以动态更改。
- :可以注册服务,客户端可以使用 Spring 管理的 bean,自动集成 Ribbon 来发现实例。
- :支持分布式系统中的外化配置,配置变化时自动刷新。
- :支持构建与共享消息系统连接的高度可扩展的事件驱动微服务。
- :支持高性能、易用的分布式事务解决方案。
- :海量、安全、低成本、高可靠的云存储服务。支持随时随地在任何应用程序中存储和访问任何类型的数据。
- :精准、高可靠、高可用的定时作业调度服务,响应时间秒级。
- :覆盖全球的短信服务,阿里短信提供便捷、高效、智能的通讯能力,帮助企业快速联系客户。
主要包含如下组件:
- :把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
- :一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
- :一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。
- :Apache Dubbo? 是一款高性能 Java RPC 框架。
- :阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。
- : 阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。
- : 阿里中间件团队开发的一款分布式任务调度产品,提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。
- : 覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。
github地址: https://github.com/alibaba/spring-cloud-alibaba
配置maven依赖:
dependencyManagement> dependencies>dependency> groupId>com.alibaba.cloud/groupId> artifactId>spring-cloud-alibaba-dependencies/artifactId> version>2.2.6.RELEASE/version> type>pom声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!