相信做過開發的都知道阿里是很多程式設計師夢寐以求的地方,那裡聚集了很多的大牛。
一直以來,阿里巴巴在開源方面非常重視,它既是 apache 基金會成員、Linux 基金會成員,同時也是 Xen 顧問委員會成員。
阿里2010年夏天在杭州開源了第一個專案,在這10年裡面,阿里開源專案數已超過一千個,覆蓋大資料、雲原生、AI、資料庫、中介軟體、硬體等多個領域。中國企業的貢獻排名位居榜首。
1)fastjson
Star數:21.3k
地址:https://github.com/alibaba/fastjson
是一個java語言編寫的高效能且功能完善的JSON解析器和生成器,採用一種“假定有序快速匹配”演算法,主要特點:
快速FAST (比其它任何基於Java的解析器和生成器更快,包括jackson)強大(支援普通JDK類包括任意Java Bean Class、Collection、Map、Date或enum)零依賴(沒有依賴其它任何類庫除了JDK)2)Druid
Star數:21.2k
地址:https://github.com/alibaba/druid
java資料庫連線池,相比spring推薦的DBCP和hibernate推薦的C3P0、Proxool資料庫連線池,Druid在市場上佔有絕對的優勢。主要特點:
強大的監控特性。方便擴充套件。Druid提供了Filter-Chain模式的擴充套件API,可以自己編寫Filter攔截JDBC中的任何方法。提供了一個高效、功能強大、可擴充套件性好的資料庫連線池。3)Dubbo
Star數:32.3k
地址:https://github.com/apache/dubbo
基於 Java 的高效能 RPC(一種遠端呼叫) 分散式服務框架(SOA),致力於提供高效能和透明化的RPC遠端服務呼叫方案,以及SOA服務治理方案。
國內很多網際網路公司都在用,已經經過很多線上考驗。內部使用了 Netty、Zookeeper,保證了高效能高可用性。三個核心功能:
面向介面的遠端方法呼叫。單一長連線和NIO通訊。智慧容錯和負載均衡。支援隨機(預設)、輪詢、最少活躍呼叫、一致性雜湊4種載均衡方式。服務自動註冊和發現。支援multicast、zookeeper、redis、simple註冊中心。4)Sentinel
Star數:12.2k
地址:https://github.com/alibaba/Sentinel
面向微服務的輕量級流量控制框架,從流量控制、熔斷降級、系統負載保護等多個維度保護服務的穩定性。主要特徵:
豐富的應用場景。例如:淘寶雙十一大促流量的核心場景,秒殺。完備的實時監控。廣泛的開源生態。與其它開源框架/庫整合,開箱即用。完善的 SPI 擴充套件點。通過擴充套件可以實現例如規則管理、適配動態資料來源等功能。5)Nacos
Star數:12k
地址:https://github.com/alibaba/nacos
一款支援服務註冊與發現,配置管理以及微服務管理的元件。通過它能快速實現動態服務發現、服務配置、服務元資料及流量管理。主要特徵:
服務發現和服務健康監測。支援基於 DNS 和基於 RPC 的服務發現,提供對服務的實時的健康檢查,阻止向不健康的主機或服務例項傳送請求。動態配置服務。消除了配置變更時重新部署應用和服務的需要。動態 DNS 服務。更容易地實現中間層負載均衡、更靈活的路由策略、流量控制以及資料中心內網的簡單DNS解析服務。服務及其元資料管理。6)JStorm
Star數:3.9k
地址:https://github.com/alibaba/jstorm
實時流式計算框架,在網路IO、執行緒模型、資源排程、可用性及穩定性上做了持續改進,已被越來越多企業使用。主要特徵:
開發非常迅速。介面簡單,易上手。擴充套件性強。可線性擴充套件效能。容錯:當Worker異常或掛起,會自動分配新的Worker去工作。資料精準。採用Ack機制,規避了資料丟失的風險。使用事物機制,提高資料精度。7)Spring Cloud Alibaba
Star數:13.6k
地址:https://github.com/spring-cloud-incubator/spring-cloud-alibaba
提供微服務開發的一站式解決方案,包含開發分散式應用微服務的必需元件,開發者可通過它輕鬆開發分散式應用服務。主要功能:
服務限流降級。服務註冊與發現。預設集成了 Ribbon。分散式配置管理。支援分散式系統中的外部化配置,配置更改時自動重新整理。訊息驅動能力。基於Spring Cloud Stream為微服務應用構建訊息驅動能力。分散式事務。使用 @GlobalTransactional 註解, 高效並且對業務零侵入地解決分散式事務問題。阿里雲物件儲存。分散式任務排程。提供秒級、精準、高可靠、高可用的定時(基於 Cron 表示式)任務排程服務。阿里雲簡訊服務。覆蓋全球的簡訊服務,友好、高效、智慧的互聯化通訊能力,幫助企業迅速搭建客戶觸達通道。8)Seata
Star數:15.6k
地址:https://github.com/seata/seata
前身叫Fescar。Seata 是一款開源的分散式事務解決方案,致力於提供高效能和簡單易用的分散式事務服務。主要特徵:
一階段提交本地事務,無鎖,高效能。在第一階段釋放對資源的鎖定,降低了鎖範圍,提高效率。事件驅動架構,參與者可非同步執行,高吞吐。Saga 模式補償服務易於實現。補償服務指使用一個額外的協調服務來協調各個需要保證一致性的微服務,協調服務按順序呼叫各個微服務,協調服務實現為一個通用的補償框架,保證最終一致性。9)TDDL
Star數:1.3k
地址:https://github.com/alibaba/tb_tddl
基於集中式配置的 jdbc datasource實現,具有主備,讀寫分離,動態資料庫配置等功能。主要優點:
資料庫主備和動態切換。帶權重的讀寫分離。單執行緒讀重試。集中式資料來源資訊管理和動態變更。剝離的穩定jboss資料來源。支援mysql和oracle資料庫。基於jdbc規範,很容易擴充套件支援實現jdbc規範的資料來源。無server,client-jar形式存在,應用直連資料庫。讀寫次數,併發度流程控制,動態變更。可分析的日誌列印,日誌流控,動態變更10)SOFABoot
Star數:3.7k
地址:https://github.com/sofastack/sofa-boot
螞蟻金服開源的基於 Spring Boot 的研發框架。主要功能:
擴充套件 Spring Boot 健康檢查的能力。在 Spring Boot 健康檢查能力基礎上,提供了 Readiness Check 的能力,保證應用例項安全上線。提供模組化開發的能力。每個 SOFABoot 專案使用獨立的 Spring上下文,避免BeanId 衝突。增加模組並行載入和 Spring Bean 非同步初始化能力,加速應用啟動。增加日誌空間隔離的能力。中介軟體框架自動發現應用的日誌實現依賴並獨立列印日誌,避免中介軟體和應用日誌實現繫結,通過 sofa-common-tools 實現。增加類隔離的能力。基於 SOFAArk 框架提供類隔離能力。增加中介軟體整合管理的能力。統一管控、提供中介軟體統一易用的程式設計介面、每一個 SOFA 中介軟體都是獨立可插拔的元件。完全相容 Spring Boot。除了以上介紹的開源專案,阿里還有很多熱門的開源專案,貌似有1700多個。