阿里巴巴有哪些好玩的分佈式開源框架?

前言

開源項目起初由國外一些工程師發起,最著名的開源社區及私有軟件項目的託管平臺GitHub,由國外Chris Wanstrath創辦從一個開發者社區變成了一個免費開源代碼託管平臺;國內越來越多的公司把自研的一些優秀開源框架貢獻出來,阿里巴巴、騰訊、百度、網易、噹噹、攜程等公司都有在github上開源一些優秀的項目。其中阿里巴巴的的開源項目很多,幾乎國內所有公司都用過阿里巴巴的一些項目,耳熟能詳的如:druid、fastjson。分佈式流行的當下,阿里也有衆多分佈式開源項目,今天主要蒐羅一下阿里分佈式開源項目。

一、分佈式RPC服務框架Dubbo

Apache Dubbo (incubating) |是阿里巴巴的一款高性能、輕量級的開源Java RPC框架,它提供了三大核心能力:面向接口的遠程方法調用,智能容錯和負載均衡,以及服務自動註冊和發現。

高性能優秀的服務框架,使得應用可通過高性能的 RPC 實現服務的輸出和輸入功能,可以和 Spring框架無縫集成。國內很多中小公司都在用阿里巴巴的dubbo框架構建分佈式項目。

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

二、Spring Cloud Alibaba

分佈式應用服務開發的一站式解決方案Spring Cloud Alibaba,是阿里巴巴基於Spring Cloud並在其基礎之上添加阿里自己的組件進行的升級和改造,項目包含開發分佈式應用服務的必需組件,方便開發者通過 Spring Cloud 編程模型輕鬆使用這些組件來開發分佈式應用服務。使用 Spring Cloud Alibaba,只需要添加一些註解和少量配置,就可以將 Spring Cloud 應用接入阿里分佈式應用解決方案,通過阿里中間件來迅速搭建分佈式應用系統。使用過SpringCloud開發的同學,不會對SpringCloudAlibaba陌生。

github地址https://github.com/spring-cloud-incubator/spring-cloud-alibaba

三、動態服務發現、配置和服務管理平臺Nacos

Nacos是阿里巴巴研發的一個集註冊中心與配置中心於一體的管理平臺。Nacos提供了一組簡單易用的特性集,幫助您實現動態服務發現、服務配置管理、服務及流量管理。

Nacos 幫助您更敏捷和容易地構建、交付和管理微服務平臺。 Nacos 是構建以“服務”爲中心的現代應用架構(例如微服務範式、雲原生範式)的服務基礎設施。

github地址https://nacos.io/en-us/

四、高可用流量管理框架Sentinel

Sentinel 是阿里開源的一個面向微服務的輕量級流量控制框架,從流量控制、熔斷降級、系統負載保護等多個維度保護服務的穩定性。

只要通過 Sentinel API 定義的代碼,就是資源,能夠被 Sentinel 保護起來。大部分情況下,可以使用方法簽名,URL,甚至服務名稱作爲資源名來標示資源。

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

五、分佈式鏈路追蹤中間件SOFATracer

分佈式鏈路追蹤解決方案有很多,SOFATracer 是阿里開源的一個用於分佈式系統調用跟蹤的組件,通過統一的 traceId 將調用鏈路中的各種網絡調用情況以日誌的方式記錄下來,以達到透視化網絡調用的目的。

這些日誌可用於故障的快速發現,服務治理等。

github地址https://github.com/alipay/sofa-tracer

六、高性能 Java RPC 框架SOFARPC

阿里開源的RPC框架除了Dubbo外還有螞蟻金服的SOFARPC ,SOFARPC是一個高可擴展性、高性能、生產級的 Java RPC 框架。在螞蟻金服 SOFARPC 已經經歷了十多年及五代版本的發展。SOFARPC 致力於簡化應用之間的 RPC 調用,爲應用提供方便透明、穩定高效的點對點遠程服務調用方案。爲了用戶和開發者方便的進行功能擴展,SOFARPC 提供了豐富的模型抽象和可擴展接口,包括過濾器、路由、負載均衡等等。同時圍繞 SOFARPC 框架及其周邊組件提供豐富的微服務治理方案。

github地址https://github.com/alipay/sofa-rpc

七、面向雲的分佈式消息領域標準OpenMessaging

OpenMessaging 是由阿里巴巴發起,與雅虎、滴滴出行、Streamlio 公司共同參與創立,旨在創立廠商無關、平臺無關的分佈式消息及流處理領域的應用開發標準。

github地址https://github.com/openmessaging/openmessaging-java

八、P2P 文件分發系統Dragonfly

Dragonfly(蜻蜓)是阿里自研的 P2P 文件分發系統,用於解決大規模文件分發場景下分發耗時、成功率低、帶寬浪費等難題。大幅提升發佈部署、數據預熱、大規模容器鏡像分發等業務能力。

開源版的 Dragonfly 可用於 P2P 文件分發、容器鏡像分發、局部限速、磁盤容量預檢等。它支持多種容器技術,對容器本身無需做任何改造,鏡像分發比 natvie 方式提速可高達 57 倍,Registry 網絡出流量降低99.5%以上。我們公司就用這款項目用於日誌存儲和搜索非常方便。

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

九、基於 Spring Boot的研發框架SOFABoot

SOFABoot 是螞蟻金服開源的基於 Spring Boot 的研發框架,它在 Spring Boot 的基礎上,提供了諸如 Readiness Check,類隔離,日誌空間隔離等等能力。在增強了 Spring Boot 的同時,SOFABoot 提供了讓用戶可以在 Spring Boot 中非常方便地使用 SOFAStack 相關中間件的能力。

github地址https://github.com/alipay/sofa-boot

十、分佈式數據層TDDL

在分佈式系統中,經常需要實現讀寫分離,動態數據庫配置等;配套數據庫實現分佈式系統的一些解決方案,TDDL 是一個基於集中式配置的 jdbc datasource實現,具有主備,讀寫分離,動態數據庫配置等功能。

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

十一、輕量級分佈式數據訪問層CobarClient

MyBatis相信大家都用過,持久層中間件,具有多級緩存實現配套Spring/SpringBoot插件使用更方便;Cobar Client是一個輕量級分佈式數據訪問層(DAL)基於iBatis(已更名爲MyBatis)和Spring框架實現。

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

十二、redis 的 java 客戶端Tedis

Redis是一個非常實用和高效的NoSQL(非關係型數據庫)能夠有效解決系統和數據庫之間的一些訪問壓力,並且提供一些其他更重要的功能如:分佈式鎖的實現等。

Tedis 是另一個 redis 的 java 客戶端。Tedis 的目標是打造一個可在生產環境直接使用的高可用 Redis 解決方案。

github地址https://github.com/justified/tedis

總結

在國人開源項目越來越多,科技發展的當下,實力越來越強大,瞭解並參與到開源項目中,是每一個技術人的實力認證和驕傲。即使未能參與到開源的項目中去,甚至未能在工作中使用它們 ,至少我們可以去了解這些項目。

 


既然都看完了整篇文章,相信對你一定有所幫助。原創不易,遠離伸手黨。

點擊下方【打賞】小編,或者關注公衆號給予支持,你們的每一份鼓勵都將是小編偉大的動力。


同名原創公衆號:   程序大視界

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章