盤點 35 個 Apache 頂級項目,我拜服了…


Apache 軟件基金會

Apache 軟件基金會,全稱:Apache Software Foundation,簡稱:ASF,成立於 1999 年 7 月,是目前世界上最大的最受歡迎的開源軟件基金會,也是一個專門為支持開源項目而生的非盈利性組織。

來看看 Apache 軟件基金會現在的成績:

  • 管理了超過兩億行的代碼;
  • 提交了 1,119,785,328 行代碼;
  • 3,231,428 次代碼提交;
  • 765 個 ASF 個人會員;
  • 7,600 個 代碼提交者;
  • 所有志願者的社區;
  • 350+ 項目和提議;
  • 300 +頂級項目;
  • 52 個孵化器項目;

以上信息來源 Apache 官網,你看本文的時候可能會有更新。

https://www.apache.org/

據 Apache 統計,目前整個 Apache 軟件基金會有價值超過 200+ 億美元的開源軟件和項目,免費提供給開發者使用,並使全世界數十億的用戶受益。

看到這里,我只能說 Apache 牛逼,下面我要整理的,可能都是我們日常開發過程中都會遇到的頂級開源項目,看看你用過幾個,沒用過的也可以學習了解下,日后總有用武之地。

頂級開源項目

基礎組件項目

1、Apache(httpd)

項目主頁:

http://httpd.apache.org/

Apache 中文名:阿帕奇,全稱:Apache HTTP Server,后來改名叫 "httpd",是 Apache 軟件基金會的一個開源 HTTP 服務器,能夠運行於 UNIX 和 Windows 上的安全、高效和可擴展服務器。

Apache 估計也是最早的開源項目了,1995 年就推出來了,自從 1996 年 4 月開始就一直是互聯網上最流行的 web 服務器了,2020 年 2 月,它度過了它的 25 歲生日。

Apache 適合做HTML、圖片等靜態資源服務,可以用來部署靜態網站,類似於 Nginx,不過 Nginx 要更強大,現在用 Nginx 的比較多。

2、Tomcat

項目主頁:

http://tomcat.apache.org/

這個做 Java 的沒人不認識吧,記得在學校的時候學 Java 最經典的軟件就是這只湯姆貓了,當時還是 Tomcat 6 的時代,現在是 8 的時代,最新已經到 10 了。

Tomcat 就是一個 Apache 開源的 Web 應用服務器,支持 Java Servlet, JavaServer Pages, Java Expression Language 和 Java WebSocket 技術,其實就是為 Java 而生。

雖然這些年 Tomcat 漏洞一直有,不能和其他收費的比,但它開源啊、免費啊,現在仍是 Java 界最主流的應用服務器。

3、Commons

項目主頁:

http://commons.apache.org/

Apache Commons 是包含一系列 Java 公共組件的項目,可以理解為 Java 開發工具包、公共類庫,最經典的莫非 commons-lang3 類庫了:

<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-lang3</artifactId>
</dependency>

Apache Commons 提供了一系列額外的 Java 核心 API,用的最多的 StringUtils 想必大家都知道了。

除了 commons-lang3 類庫,Apache Commons 目前共提供了 43 個十分好用的類庫,比如:

  • commons-io:這是一個有效開發 IO 功能的實用類庫,很多 Java IO 處理都不能自己封裝;
  • commons-codec:這個類庫提供了常用的編碼器和解碼器,比如:Base64、十六進制、語音和 url 的編碼解碼等;
  • commons-collections:這個類庫是專門處理集合的,很多集合處理也不用自己寫了;
  • commons-fileupload:這個類庫提供了非常容易的、健壯的、高性能的文件上傳功能;
  • ……

更多請參考上方的項目主頁鏈接,其實 Apache Commons 提供了許多這些公用類庫,我們真的沒有必要重復造輪子,直接拿來用就好了。

4、POI

項目主頁:

http://poi.apache.org/

做過 Java Web 傳統后台項目的都知道 POI 類庫吧,POI 提供了一系列的 Java API 對 Microsoft Office 格式檔案讀寫處理,如:Excel、Word、PowerPoint 等文件的讀寫,非常強大。

5、HttpComponents

項目主頁:

http://hc.apache.org/

Apache HttpComponents 提供了 HTTP 和相關協議的一系列 Java 組件和工具集,包括:HttpCore、HttpClient、HttpAsyncClient 三個組件,大家用的最多的 HTTP 客戶端 HttpClient 應該都清楚了吧,就是這個開源項目的組件之一。

最新的 HttpClient 都到 httpclient5 了:

<dependency>
  <groupId>org.apache.httpcomponents.client5</groupId>
  <artifactId>httpclient5</artifactId>
  <version>5.0.1</version>
</dependency

6、logging services

項目主頁:

http://logging.apache.org/

Apache logging services:即 Apache 日志服務,做 Java 都知道 Log4j 吧,也是用的最多的日志框架,就是屬於這個開源項目,另外還包含還有 Log4j 2、log4php、log4cxx 等其他語言的日志框架。

7、Ant

項目主頁:

http://ant.apache.org/

Apache Ant 是一個比較老的 Java 項目編譯和構建工具,現在已經用的比較少了,已經被 Maven/ Gradle 替代了。

8、Maven

項目主頁:

http://maven.apache.org/

Apache Maven 算是 Apache Ant 的終結者,是現在最主流的軟件項目管理工具之一,提供項目自動編譯、單元測試、打包、發布等一系列生命周期的管理。

這里就不展開介紹了,相信大家大部分人所在公司都已經在用它,想系統學習的,我之前也寫過不少教程,關注Java技術棧公眾號在后台回復 Maven 即可快速閱讀。

9、Subversion

項目主頁:

http://subversion.apache.org/

沒錯,Subversion 就是指牛逼哄哄的 SVN,創建於 2000 年,是 Apache 開源的版本控制軟件,代碼版本控制、文件版本控制沒人沒用過它吧?

Web 項目

10、Struts

項目主頁:

http://struts.apache.org/

Struts 是一個免費開源的 MVC 框架,用於創建 Java web 應用程序。Struts 那些年可謂是風光無限啊,Struts2 + Spring + Hibernate 三大框架一起組成了 "SSH"————牛逼哄哄的 Java Web 框架三劍客。

不過 Struts 漏洞太多了,隨着 Spring MVC, Spring Boot 的興起,現在它也逐漸被淘汰了,具體可以點擊這里看下這篇文章。

11、FreeMarker

項目主頁:

https://freemarker.apache.org/

Apache FreeMarker 是一個基於模板和數據生成文本輸出 HTML 頁面、電子郵件、配置文件、源代碼等的一個 Java 模板引擎庫。

用的最多的就是利用 FreeMarker 模板來生成靜態頁面,FreeMarker 也是 Spring Boot 支持自動配置的四大模板引擎之一。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
    <version>2.3.1.RELEASE</version>
</dependency>

12、Velocity

項目主頁:

http://velocity.apache.org/

Velocity 是一個基於 Java 語言的模板引擎,它允許任何人使用簡單而強大的模板語言來引用 Java 代碼中定義的對象。

但是,由於 Velocity 長期未更新,所以 Spring Boot 1.5.x 之后不再支持 Velocity,建議大家使用其他模板引擎。

上次更新還是 2010 年。

13、Tapestry

項目主頁:

https://tapestry.apache.org/

Tapestry 在 Java Web 開發界也是鼎鼎有名的,我知道的之前就有一些公司都用過它。它是一個面向組件的 Web 框架,用於在 Java 中創建高度可伸縮的 Web 應用程序。

14、Shiro

項目主頁:

http://shiro.apache.org/

做 Java Web 后台開發的程序員應該沒人不知道強大 Shiro 了,Apache Shiro 是一個功能強大且易於使用的 Java 安全框架,可用於身份驗證、授權、加密和會話管理等。

另外,通過 Apache Shiro 易於理解的API、細致化的權限控制,我們可以快速、輕松地開發和保護企業應用程序。

分布式項目

15、Dubbo

項目主頁:

http://dubbo.apache.org/

對於 Dubbo,做分布式、微服務的程序員朋友們應該都再清楚不過了,它最初是由阿里巴巴開源的分布式服務框架(RPC),一段時間停止維護后,后來又重啟維護並捐獻給了 Apache 軟件基金會。

即使現在 Spring Cloud 微服務的興起,Dubbo 現在在很多企業也還是在大量運用的,隨着 Dubbo 的重啟維護並且捐獻給 Apache 軟件基金會,它的明天會越來越好。

16、Thrift

項目主頁:

http://thrift.apache.org/

Apache Thrift 也是一款優秀的、非常輕量級的 RPC 框架,也是大名鼎鼎,最初由 Facebook 進行開發,后來捐獻給了 Apache 軟件基金會。

Apache Thrift 支持可擴展的跨語言服務化開發,支持多種語言,如 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml, Delphi 等,十分強大。

17、Zookeeper

項目主頁:

http://zookeeper.apache.org/

Apache Zookeeper 也是一個分布式中間件神器,是 Google Chubby 的一個開源實現,可用於做配置中心、分布式鎖等,最主要一點是它可以用來支持高度可靠的分布式服務協調中間件。

現在市面上的一些主流的開源項目都有 Zookeeper 的身影,如:Hadoop、Dubbo、Kafka、ElasticJob 等。

18、Curator

項目主頁:

http://curator.apache.org/

Apache Curator 是 ZooKeeper 的 Java 客戶端,它包括一系列高級 API 和工具,簡化了使用 ZooKeeper 的操作,可以更容易、可靠地使用 ZooKeeper。

19、SkyWalking

項目主頁:

http://skywalking.apache.org/

Apache SkyWalking 是一個可觀測性分析平台和應用性能管理系統,提供分布式跟蹤、指標監控、性能診斷、度量匯總和可視化一體化的解決方案。

Apache SkyWalking 支持 Java,net Core, PHP, NodeJS, Golang, LUA 的代理,還支持 Istio + Envoy Service Mesh,特別為微服務、雲本機和基於容器(如:Docker, K8s, Mesos)架構設計的。

20、ShardingSphere

項目主頁:

http://shardingsphere.apache.org/

Apache ShardingSphere 是由一組分布式數據庫中間件解決方案組成的開源生態系統,包括 3 個獨立的產品:JDBC, Proxy & Sidecar (計划中)。它們都提供了數據分片、分布式事務和數據庫編排功能,適用於 Java 同構、異構語言和雲原生等多種場景。

搜索項目

21、Lucene

項目主頁:

https://lucene.apache.org/

Apache Lucene 是一個頂級的開源搜索框架,包括一個核心搜索庫:Lucene core,以及一個搜索服務器:Solr。

Lucene Core 是一個提供強大的索引和搜索功能的 Java 庫,以及拼寫檢查、高亮顯示和高級分析/標記功能。

Solr 是使用 Lucene Core 構建的高性能搜索服務器。Solr 具有高伸縮性,提供完全容錯的分布式索引、搜索和分析功能。

消息中間件項目

22、ActiveMQ

項目主頁:

http://activemq.apache.org/

Apache ActiveMQ 是一款靈活、強大的多協議開源消息中間件,支持 JMS 1.1 & 2.0,也是目前最流行的基於 Java 的消息中間件之一。

它支持行業標准協議,所以用戶可以跨廣泛的語言和平台選擇最合適的客戶端,如 C、c++、Python、. net 等更多其他語言。

23、RocketMQ

項目主頁:

http://rocketmq.apache.org/

Apache RocketMQ 真的是一款重量級、極具競爭力的消息隊列產品,是由阿里巴巴 2012 年開源的分布式消息中間件,也是一款輕量級的數據處理平台,2016 年捐贈給了 Apache 軟件基金會,2017 年正式畢業。

24、Kafka

項目主頁:

http://kafka.apache.org/

Apache Kafka 也是一款重量級開源項目,最初由 Linkedin 公司進行開發,后來捐獻給了 Apache 軟件基金會。

Apache Kafka 它是一種分布式、高吞吐量的發布訂閱消息系統(MQ),它的最大的特性就是,可以實時好處理大量數據以滿足各種需求和業務場景。

大數據/數據庫項目

25、Hadoop

項目主頁:

http://hadoop.apache.org/

做大數據的沒有不知道 Apache Hadoop 的,它是一種高可靠、可伸縮、分布式大數據處理框架,也是一套大數據行業公認的標准框架。

Apache Hadoop 成立於 2002 年,曾是 Apache Lucene 的子項目之一,2008 年正式成為 Apache 的頂級項目。

26、HBase

項目主頁:

http://hbase.apache.org/

Apache HBase 是一個建立在 Hadoop HDFS 的非關系數據庫,以分布式、可擴展進行大數據存儲,如果需要對大數據進行隨機、實時的讀寫訪問時,可以使用 Apache HBase。

27、Pig

項目主頁:

http://pig.apache.org/

Apache Pig 是一個基於 Hadoop 的大數據分析平台,是 Map Reduce 的一個抽象,提供類似於 SQL 的面向數據流的 Pig Latin 高級語言。

Pig Latin 提供了各種操作符,以及豐富的數據類型,從而可以很輕松地執行 Map Reduce 任務。

28、Hive

項目主頁:

http://hive.apache.org/

Apache Hive 是一個基於 Hadoop 的數據倉庫工具,用來提取、轉化和加載數據,它可以將 Hadoop 原始結構化數據映射為 Hive 中的一張表,並提供了類似 SQL 的 HiveQL 語言查詢功能。

29、Spark

項目主頁:

http://spark.apache.org/

Apache Spark 是一個用於大規模數據處理的統一分析引擎,它也被認為是第二代大數據技術,第一代是基於 Hadoop 的 Map Reduce 模型。

Apache Spark 它本身不會進行分布式數據的存儲,所以它必須要集成其他的分布式文件系統才能工作,一船要與 Apache Hadoop 的 HDFS 結合使用,但這不是必須的,也可以選擇其他的數據系統平台進行集成。

項目主頁:

https://flink.apache.org/

Apache Flink 是一個分布式處理引擎框架,用於無邊界和有邊界數據流上的有狀態計算。Flink 被設計用於在所有常見的集群環境中運行,以內存速度和任何規模執行計算。

31、Storm

項目主頁:

http://storm.apache.org/

Apache Storm 是一個分布式實時計算系統,它能夠輕松可靠地處理數據流,就像 Hadoop 那樣進行實時批處理,並且可以與任何編程語言一起使用,而且使用起來非常方便。

32、Cassandra

項目主頁:

https://cassandra.apache.org/

Apache Cassandra 是一款可伸縮、高可用、高性能去中心化的分布式數據庫,當時是 Facebook 在 2007 年為了解決消息收件箱搜索問題而開始設計的,后來被轉移到了 Apache 軟件基金會成為頂級項目。

33、CouchDB

項目主頁:

https://couchdb.apache.org/

Apache CouchDB 是一個面向文檔的分布式數據庫,它以 JSON 作為存儲格式,JavaScript 作為查詢語言,提供直觀可靠的 Restful API 接口進行操作,最顯著的特點就是支持多主復制。

編程語言、工具項目

34、Groovy

項目主頁:

http://groovy.apache.org/

Apache Groovy 是一個功能十分強大的基於 JVM 平台的動態編程語言,語法與 Java 十分相似,並且兼容 Java,但 Groovy 要更簡潔、優美,更易於學習,開發效率也非常高。

35、NetBeans

項目主頁:

http://netbeans.apache.org/

NetBeans 是一款老牌的開源開發工具(IDE),集成開發環境和應用框架,支持 Java, JavaScript, PHP 等更多編程語言,最初由 SUN 公司開發,后來被 Oracle 收購,再后來被 Oracle 捐獻給了 Apache 軟件基金會。

總結

相信今天棧長分享的 35 個頂級項目大家都接觸過或者聽說過,雖然有些面臨淘汰,但它們個個都是重磅,曾經也都風光過,正是有了這些開源項目,我們 Java 生態圈才會越來越繁榮。

最后,這篇文章寫完真心不容易啊,抽空陸陸續續寫了好些天,覺得本文不錯,也歡迎點贊轉發哦!

大家也可以持續關注公眾號Java技術棧,棧長也將繼續分享好玩的 Java 項目和工具,公眾號第一時間推送。

你還知道哪些重磅的 Apache 頂級項目,歡迎留言分享~

推薦去我的博客閱讀更多:

1.Java JVM、集合、多線程、新特性系列教程

2.Spring MVC、Spring Boot、Spring Cloud 系列教程

3.Maven、Git、Eclipse、Intellij IDEA 系列工具教程

4.Java、后端、架構、阿里巴巴等大廠最新面試題

覺得不錯,別忘了點贊+轉發哦!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM