其他分享
首页 > 其他分享> > 强烈推荐 | 阿里开源的这10个神级项目

强烈推荐 | 阿里开源的这10个神级项目

作者:互联网

前言

最近趁着国庆节放假休息,特地整理了一下,阿里巴巴开源的10款神级项目。

这些开源项目中的绝大多数,我都在实际工作中用过,或者有同事用过。确实挺不错,挺有价值的,现在推荐给大家。

1. Druid

Druid自称是Java语言中最好的数据库连接池,它能够提供强大的监控和扩展功能。监控后台如下图所示:

Druid的主要优点如下:

github地址: https://github.com/alibaba/druid

maven中央仓库: https://mvnrepository.com/artifact/com.alibaba/druid

配置maven依赖:

<dependency>
		<groupId>com.alibaba</groupId>
		<artifactId>druid</artifactId>
		<version>${druid-version}</version>
</dependency>

2. fastjson

fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。

fastjson的主要优点如下:

//序列化
String text = JSON.toJSONString(obj); 
//反序列化
VO vo = JSON.parseObject("{...}", VO.class); 

github地址: https://github.com/alibaba/fastjson

maven中央仓库: https://mvnrepository.com/artifact/com.alibaba/fastjson

配置maven依赖:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.76</version>
</dependency>

3. Dubbo

Apache Dubbo 是一款微服务开发框架,它提供了 RPC通信 与 微服务治理 两大关键能力。这意味着,使用 Dubbo 开发的微服务,将具备相互之间的远程发现与通信能力, 同时利用 Dubbo 提供的丰富服务治理能力,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。

同时 Dubbo 是高度可扩展的,用户几乎可以在任意功能点去定制自己的实现,以改变框架的默认行为来满足自己的业务需求。它目前已交给Apache管理和维护。

架构图如下:

Dubbo的主要优点如下:

github地址: https://github.com/apache/dubbo

maven中央仓库: https://mvnrepository.com/artifact/com.alibaba/dubbo/

配置maven依赖:

<properties>
    <dubbo.version>3.0.3</dubbo.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo</artifactId>
        <version>${dubbo.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo-dependencies-zookeeper</artifactId>
        <version>${dubbo.version}</version>
        <type>pom</type>
    </dependency>
</dependencies>

4. Rocketmq

Apache RocketMQ是一个分布式消息和流媒体平台,具有低延迟、高性能和可靠性、万亿级容量和灵活的可扩展性。

它提供了多种功能:

rocketmq后台管理界面:

github地址: https://github.com/apache/rocketmq

maven中央仓库: https://mvnrepository.com/artifact/org.apache.rocketmq/rocketmq-spring-boot-starter

rocketmq包含:服务端和客户端,在我们的项目中主要关注客户端的代码即可。

配置maven依赖:

<dependency>
    <groupId>org.apache.rocketmq</groupId>
    <artifactId>rocketmq-client</artifactId>
    <version>4.3.0</version>
</dependency>

4. Arthas

Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。

当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:

分析代码消耗时间:

Arthas支持JDK 6+,能够运行在多种操作系统上,比如:Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。

github地址: https://alibaba.github.io/arthas/

maven中央仓库: https://mvnrepository.com/artifact/com.taobao.arthas/arthas-spring-boot-starter

在目标机器执行如下命令即可启动arthas:

curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar

5. Nacos

Nacos是一个易于使用的平台,专为动态服务发现和配置以及服务管理而设计。它可以帮助您轻松构建云原生应用程序和微服务平台。

服务是Nacos的一等公民。Nacos 支持几乎所有类型的服务,例如Dubbo/gRPC 服务、Spring Cloud RESTFul 服务或Kubernetes 服务。

Nacos 提供了四大功能。

Nacos 地图:

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/easyexcel

maven中央仓库: https://mvnrepository.com/artifact/com.alibaba/easyexcel

配置maven依赖:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>2.2.6</version>
</dependency>

7. Sentinel

随着分布式系统变得越来越流行,服务之间的可靠性变得比以往任何时候都更加重要。

Sentinel以“流量”为切入点,在流量控制、 流量整形、熔断、系统自适应保护等多个领域开展工作,保障微服务的可靠性和弹性。

Sentinel具有以下特点:

功能概述:

生态系统景观:

github地址: https://github.com/alibaba/Sentinel

maven中央仓库: https://mvnrepository.com/artifact/com.alibaba.csp/sentinel-core

配置maven依赖:

<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-core</artifactId>
    <version>1.8.2</version>
</dependency>

8. otter

阿里巴巴B2B公司,因为业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了杭州和美国异地机房的需求,同时为了提升用户体验,整个机房的架构为双A,两边均可写,由此诞生了otter这样一个产品。

otter第一版本可追溯到04~05年,此次外部开源的版本为第4版,开发时间从2011年7月份一直持续到现在,目前阿里巴巴B2B内部的本地/异地机房的同步需求基本全上了otte4。

目前同步规模:

otter能解决什么?

工作原理图:

单机房复制示意图:

异地机房复制示意图:

github地址: https://github.com/alibaba/otter

maven中央仓库: https://mvnrepository.com/artifact/com.alibaba.otter/canal.client

9. P3C

P3C插件呈现了阿里巴巴 Java 编码指南,它整合了阿里巴巴集团技术团队多年来的最佳编程实践。由于我们鼓励重用和更好地理解彼此的程序,因此大量 Java 编程团队对跨项目的代码质量提出了苛刻的要求。

阿里巴巴过去见过很多编程问题。例如,有缺陷的数据库表结构和索引设计可能会导致软件架构缺陷和性能风险。另一个例子是混乱的代码结构难以维护。此外,未经身份验证的易受攻击的代码容易受到黑客的攻击。为了解决这些问题,我们为阿里巴巴的Java开发人员编写了这份文档。

更多信息请参考阿里巴巴Java编码指南:

该项目由3部分组成:

四十九条规则是基于PMD实现的,更多详细信息请参考P3C-PMD文档。IDE 插件(IDEA 和 Eclipse)中实现的四个规则如下:

  1. 如果 equals 被覆盖,则覆盖 hashCode。
  2. 这两个方法必须为 Set 重写,因为它们用于确保不会在 Set 中插入重复的对象。
  3. 如果使用自定义对象作为 Map 的键,则必须覆盖这两个方法。注意:String 可以用作 Map 的键,因为这两个方法已经被重写。

使用p3c插件的效果:

最新版阿里巴巴Java开发手册下载地址:
https://github.com/alibaba/p3c/blob/master/Java开发手册(嵩山版).pdf

github地址:https://github.com/alibaba/p3c/tree/master/idea-plugin

10. Spring Cloud Alibaba

Spring Cloud Alibaba 为分布式应用开发提供一站式解决方案。它包含开发分布式应用程序所需的所有组件,使您可以轻松地使用 Spring Cloud 开发应用程序。

使用Spring Cloud Alibaba,您只需添加一些注解和少量配置,即可将Spring Cloud应用连接到阿里巴巴的分布式解决方案,并通过阿里巴巴中间件构建分布式应用系统。

主要功能如下:

主要包含如下组件:

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</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

最后说一句(求关注,别白嫖我)

如果这篇文章对您有所帮助,或者有所启发的话,帮忙扫描下发二维码关注一下,您的支持是我坚持写作最大的动力。

求一键三连:点赞、转发、在看。

关注公众号:【苏三说技术】,在公众号中回复:面试、代码神器、开发手册、时间管理有超赞的粉丝福利,另外回复:加群,可以跟很多BAT大厂的前辈交流和学习。

标签:10,github,服务,alibaba,开源,https,Java,com,神级
来源: https://www.cnblogs.com/12lisu/p/15370694.html