阿里受歡迎的20個(gè)開(kāi)源項(xiàng)目
大家好,我是Echa。
說(shuō)到阿里,作為程序員的小編不得不說(shuō)阿里的達(dá)摩院,也就在上周阿里的達(dá)摩院又出新科技出來(lái)了,友友們猜猜是啥?又看到網(wǎng)傳的消息,沒(méi)錯(cuò),那就是阿里版ChatGPT(通義千問(wèn)),內(nèi)部消息阿里版ChatGPT( 通義千問(wèn))預(yù)計(jì)4月11號(hào)面世大眾,但現(xiàn)在看申請(qǐng)通義千問(wèn)內(nèi)測(cè)申請(qǐng)入口已經(jīng)關(guān)閉了,只有邀請(qǐng)碼入口了。到時(shí)候小編有空給大家出一期。先說(shuō)說(shuō)阿里最受歡迎的20個(gè)開(kāi)源項(xiàng)目這個(gè)事情。
上周四,小編整理了一篇關(guān)于阿里最受歡迎前端開(kāi)源項(xiàng)目:《阿里最受歡迎的16個(gè)前端開(kāi)源項(xiàng)目》,廣受友友們歡迎,有興趣的可以看看。甚至還有好多友友私信小編強(qiáng)力要求出一期阿里最受歡迎的后端開(kāi)源項(xiàng)目,你們這是給小編我出難題。但是慶幸的是,小編這點(diǎn)人脈還是有的,在圈內(nèi)問(wèn)到了一些,再結(jié)合小編平時(shí)養(yǎng)成愛(ài)收集的良好習(xí)慣。
今天小編整理一起分享阿里最受歡迎的20個(gè)開(kāi)源項(xiàng)目,希望給友友們有所幫助,同時(shí)祝福友友們身體健健康康、事業(yè)蒸蒸日上、財(cái)源滾滾而來(lái)、日子紅紅火火、萬(wàn)事順順利利。
通義千問(wèn)官網(wǎng):??https://tongyi.aliyun.com/??
通義千問(wèn)官網(wǎng)
- arthas-是阿里巴巴開(kāi)源的 Java 診斷工具,深受開(kāi)發(fā)者喜愛(ài)。
- fastjson - 是一個(gè) Java 庫(kù),可將 Java 對(duì)象轉(zhuǎn)換為其 JSON 表示形式。
- druid-是一款強(qiáng)大的數(shù)據(jù)庫(kù)連接池
- spring-cloud-alibaba- 微服務(wù)開(kāi)發(fā)一站式解決方案,可以幫助阿里巴巴開(kāi)源中間件與 Spring Cloud 體系更好的融合
- sofa-boot-螞蟻金服團(tuán)隊(duì)開(kāi)源的基于 Spring Boot 的研發(fā)框架
- dubbo-是阿里巴巴的一款高性能、輕量級(jí)的開(kāi)源 Java RPC框架,可以和 Spring 框架無(wú)縫集成。
- easyexcel-easyexcel 重寫(xiě)了 poi 對(duì) 07 版 Excel 的解析,大大降低了內(nèi)存功耗。
- nginx-book-Nginx 開(kāi)發(fā)從入門(mén)到精通
- sofa-rpc-高性能 Java RPC 框架。
- p3c-java 代碼規(guī)約掃描插件,IntelliJ IDEA 搜索這款插件安裝,時(shí)刻監(jiān)控你寫(xiě)的代碼規(guī)不規(guī)范。
- AliSQL-開(kāi)源數(shù)據(jù)庫(kù),適合電商、云計(jì)算以及金融等行業(yè)環(huán)境。
- oceanbase-分布式數(shù)據(jù)庫(kù)
- fastdfs-分布式文件系統(tǒng) 。
- rocketmq-RocketMQ 是一款分布式、隊(duì)列模型的消息中間件。
- Metamorphosis-分布式消息中間件。這是一個(gè)高性能、高可用、可擴(kuò)展的分布式消息中間件。
- tengine-淘寶 Web 服務(wù)器。在Nginx的基礎(chǔ)上,針對(duì)大訪問(wèn)量網(wǎng)站的需求,添加了很多高級(jí)功能和特性。
- canal-阿里巴巴 MySQL binlog 增量訂閱&消費(fèi)組件
- otter-阿里巴巴分布式數(shù)據(jù)庫(kù)同步系統(tǒng)(解決中美異地機(jī)房)
- GraphScope-阿里巴巴的一站式大規(guī)模圖計(jì)算系統(tǒng) 圖分析 圖查詢(xún) 圖機(jī)器學(xué)習(xí)
- SREWorks-云原生數(shù)智運(yùn)維平臺(tái)
- x-render-阿里 - 很易用的中后臺(tái)「表單 / 表格 / 圖表」解決方案
arthas
官網(wǎng):https://arthas.aliyun.com/
Github:https://github.com/alibaba/arthas
Arthas 是一款線上監(jiān)控診斷產(chǎn)品,通過(guò)全局視角實(shí)時(shí)查看應(yīng)用 load、內(nèi)存、gc、線程的狀態(tài)信息,并能在不修改應(yīng)用代碼的情況下,對(duì)業(yè)務(wù)問(wèn)題進(jìn)行診斷,包括查看方法調(diào)用的出入?yún)ⅰ惓#O(jiān)測(cè)方法執(zhí)行耗時(shí),類(lèi)加載信息等,大大提升線上問(wèn)題排查效率。
背景
通常,本地開(kāi)發(fā)環(huán)境無(wú)法訪問(wèn)生產(chǎn)環(huán)境。如果在生產(chǎn)環(huán)境中遇到問(wèn)題,則無(wú)法使用 IDE 遠(yuǎn)程調(diào)試。更糟糕的是,在生產(chǎn)環(huán)境中調(diào)試是不可接受的,因?yàn)樗鼤?huì)暫停所有線程,導(dǎo)致服務(wù)暫停。
開(kāi)發(fā)人員可以嘗試在測(cè)試環(huán)境或者預(yù)發(fā)環(huán)境中復(fù)現(xiàn)生產(chǎn)環(huán)境中的問(wèn)題。但是,某些問(wèn)題無(wú)法在不同的環(huán)境中輕松復(fù)現(xiàn),甚至在重新啟動(dòng)后就消失了。
如果您正在考慮在代碼中添加一些日志以幫助解決問(wèn)題,您將必須經(jīng)歷以下階段:測(cè)試、預(yù)發(fā),然后生產(chǎn)。這種方法效率低下,更糟糕的是,該問(wèn)題可能無(wú)法解決,因?yàn)橐坏?JVM 重新啟動(dòng),它可能無(wú)法復(fù)現(xiàn),如上文所述。
Arthas 旨在解決這些問(wèn)題。開(kāi)發(fā)人員可以在線解決生產(chǎn)問(wèn)題。無(wú)需 JVM 重啟,無(wú)需代碼更改。 Arthas 作為觀察者永遠(yuǎn)不會(huì)暫停正在運(yùn)行的線程。
當(dāng)你遇到以下類(lèi)似問(wèn)題而束手無(wú)策時(shí),Arthas可以幫助你解決:
- 這個(gè)類(lèi)從哪個(gè) jar 包加載的?為什么會(huì)報(bào)各種類(lèi)相關(guān)的 Exception?
- 我改的代碼為什么沒(méi)有執(zhí)行到?難道是我沒(méi) commit?分支搞錯(cuò)了?
- 遇到問(wèn)題無(wú)法在線上 debug,難道只能通過(guò)加日志再重新發(fā)布嗎?
- 線上遇到某個(gè)用戶(hù)的數(shù)據(jù)處理有問(wèn)題,但線上同樣無(wú)法 debug,線下無(wú)法重現(xiàn)!
- 是否有一個(gè)全局視角來(lái)查看系統(tǒng)的運(yùn)行狀況?
- 有什么辦法可以監(jiān)控到JVM的實(shí)時(shí)運(yùn)行狀態(tài)?
- 怎么快速定位應(yīng)用的熱點(diǎn),生成火焰圖?
- 怎樣直接從JVM內(nèi)查找某個(gè)類(lèi)的實(shí)例?
具體如下圖:
arthas 官網(wǎng)
fastjson
Github:github.com/alibaba/fastjson
fastjson 是一個(gè) Java 庫(kù),可將 Java 對(duì)象轉(zhuǎn)換為其 JSON 表示形式。它也可以用于將 JSON 字符串轉(zhuǎn)換為等效的 Java 對(duì)象。
相對(duì)其他 JSON 庫(kù),fastjson 的優(yōu)點(diǎn)是快,從 2011 年 fastjson 發(fā)布第一個(gè)版本后,其性能從未被其他 JSON 庫(kù)超越。
由于是阿里開(kāi)源,fastjson 在阿里巴巴內(nèi)部大規(guī)模使用,在數(shù)萬(wàn)臺(tái)服務(wù)器上部署。fastjson 在業(yè)界也被廣泛接受。曾經(jīng)被開(kāi)源中國(guó)評(píng)選為最受歡迎的國(guó)產(chǎn)開(kāi)源軟件之一。
Fastjson目標(biāo)
- 在服務(wù)器端和安卓客戶(hù)端上提供最佳性能
- 提供簡(jiǎn)單的toJSONString()和parseObject()方法將Java對(duì)象轉(zhuǎn)換為JSON,反之亦然
- 允許將預(yù)先存在的不可修改對(duì)象轉(zhuǎn)換為JSON和從JSON轉(zhuǎn)換
- 對(duì)Java泛型的廣泛支持
- 允許對(duì)象的自定義表達(dá)
- 支持任意復(fù)雜的對(duì)象(具有深度繼承層次結(jié)構(gòu)和廣泛使用泛型類(lèi)型)
具體如下圖:
druid
Github: https://github.com/alibaba/druid
Druid 是一個(gè) JDBC 組件庫(kù),包含數(shù)據(jù)庫(kù)連接池、SQL Parser 等組件, 被大量業(yè)務(wù)和技術(shù)產(chǎn)品使用或集成,經(jīng)歷過(guò)最嚴(yán)苛線上業(yè)務(wù)場(chǎng)景考驗(yàn),是你值得信賴(lài)的技術(shù)產(chǎn)品。
Maven 依賴(lài)
Gradle
具體如下圖:
spring-cloud-alibaba
官網(wǎng):https://spring.io/projects/spring-cloud-alibaba
Github: https://github.com/alibaba/spring-cloud-alibaba
Spring Cloud阿里巴巴為分布式應(yīng)用程序開(kāi)發(fā)提供一站式解決方案。它包含開(kāi)發(fā)分布式應(yīng)用程序所需的所有組件,使您可以輕松地使用Spring Cloud開(kāi)發(fā)應(yīng)用程序。
使用Spring Cloud Alibaba,您只需添加一些注釋和少量配置即可將Spring Cloud應(yīng)用程序連接到阿里巴巴的分布式解決方案,并使用阿里巴巴中間件構(gòu)建分布式應(yīng)用系統(tǒng)。
特性
- 流量控制和服務(wù)降級(jí):使用Alibaba Sentinel進(jìn)行流量控制、斷路和系統(tǒng)自適應(yīng)保護(hù)
- 服務(wù)注冊(cè)和發(fā)現(xiàn):可以向Alibaba Nacos注冊(cè)實(shí)例,客戶(hù)端可以使用Spring托管bean發(fā)現(xiàn)實(shí)例。通過(guò)Spring Cloud Netflix支持Ribbon客戶(hù)端負(fù)載均衡器
- 分布式配置:使用Alibaba Nacos作為數(shù)據(jù)存儲(chǔ)
- 事件驅(qū)動(dòng):構(gòu)建與Spring Cloud Stream RocketMQ Binder連接的高度可擴(kuò)展的事件驅(qū)動(dòng)微服務(wù)
- 消息總線:通過(guò)Spring Cloud Bus RocketMQ連接分布式系統(tǒng)的節(jié)點(diǎn)
- 分布式事務(wù):支持Seata的高性能、易用的分布式事務(wù)解決方案
- Dubbo RPC:將Spring Cloud服務(wù)的通信協(xié)議擴(kuò)展到Apache Dubbo的服務(wù)調(diào)用
具體如下圖:
sofa-boot
官網(wǎng):https://www.sofastack.tech/projects/sofa-boot/overview/
Github: https://github.com/alipay/sofa-boot
SOFABoot 是螞蟻集團(tuán)開(kāi)源的基于 Spring Boot 的研發(fā)框架,它在 Spring Boot 的基礎(chǔ)上,提供了諸如 Readiness Check,上下文隔離,類(lèi)隔離,日志空間隔離等等能力。
再增強(qiáng)了 Spring Boot 的同時(shí),SOFABoot 提供了讓用戶(hù)可以在 Spring Boot 中非常方便地使用 SOFA 中間件的能力。
功能描述
SOFABoot 在 Spring Boot 基礎(chǔ)上,提供了以下能力:
- 擴(kuò)展 Spring Boot 健康檢查的能力:在 Spring Boot 健康檢查能力基礎(chǔ)上,提供了 Readiness Check 的能力,保證應(yīng)用實(shí)例安全上線。
- 提供模塊化開(kāi)發(fā)的能力:基于 Spring 上下文隔離提供模塊化開(kāi)發(fā)能力,每個(gè) SOFABoot 模塊使用獨(dú)立的 Spring 上下文,避免不同 SOFABoot 模塊間的 BeanId 沖突。
- 增加模塊并行加載和 Spring Bean 異步初始化能力,加速應(yīng)用啟動(dòng);
- 增加日志空間隔離的能力:中間件框架自動(dòng)發(fā)現(xiàn)應(yīng)用的日志實(shí)現(xiàn)依賴(lài)并獨(dú)立打印日志,避免中間件和應(yīng)用日志實(shí)現(xiàn)綁定,通過(guò) sofa-common-tools 實(shí)現(xiàn)。
- 增加類(lèi)隔離的能力:基于 SOFAArk 框架提供類(lèi)隔離能力,方便使用者解決各種類(lèi)沖突問(wèn)題。
- 增加中間件集成管理的能力:統(tǒng)一管控、提供中間件統(tǒng)一易用的編程接口、每一個(gè) SOFA 中間件都是獨(dú)立可插拔的組件。
- 提供完全兼容 Spring Boot的能力:SOFABoot 基于 Spring Boot 的基礎(chǔ)上進(jìn)行構(gòu)建,并且完全兼容 Spring Boot。
具體如下圖:
dubbo
官網(wǎng):https://cn.dubbo.apache.org/zh-cn/index.html
Github: https://github.com/apache/dubbo
ApacheDubbo是一個(gè)基于Java的高性能開(kāi)源RPC框架。請(qǐng)?jiān)L問(wèn)官方網(wǎng)站以獲取快速入門(mén)指南和文檔,以及wiki以獲取新聞、常見(jiàn)問(wèn)題解答和發(fā)布說(shuō)明。
我們現(xiàn)在正在收集Dubbo用戶(hù)信息,以幫助我們進(jìn)一步改進(jìn)Dubbo。
系統(tǒng)架構(gòu)
特征
- 基于透明接口的RPC
- 智能負(fù)載平衡
- 自動(dòng)服務(wù)注冊(cè)和發(fā)現(xiàn)
- 高擴(kuò)展性
- 運(yùn)行時(shí)流量路由
- 可視化的服務(wù)治理
具體如下圖:
easyexcel-easyexcel
官網(wǎng):https://easyexcel.opensource.alibaba.com/
Github: https://github.com/alibaba/easyexcel
JAVA解析Excel工具
Java解析、生成Excel比較有名的框架有Apache poi、jxl。但他們都存在一個(gè)嚴(yán)重的問(wèn)題就是非常的耗內(nèi)存,poi有一套SAX模式的API可以一定程度的解決一些內(nèi)存溢出的問(wèn)題,但POI還是有一些缺陷,比如07版Excel解壓縮以及解壓后存儲(chǔ)都是在內(nèi)存中完成的,內(nèi)存消耗依然很大。easyexcel重寫(xiě)了poi對(duì)07版Excel的解析,一個(gè)3M的excel用POI sax解析依然需要100M左右內(nèi)存,改用easyexcel可以降低到幾M,并且再大的excel也不會(huì)出現(xiàn)內(nèi)存溢出;03版依賴(lài)POI的sax模式,在上層做了模型轉(zhuǎn)換的封裝,讓使用者更加簡(jiǎn)單方便
具體如下圖:
nginx-book
官網(wǎng):https://easyexcel.opensource.alibaba.com/
Github: https://github.com/alibaba/easyexcel
nginx由于出色的性能,在世界范圍內(nèi)受到了越來(lái)越多人的關(guān)注,在淘寶內(nèi)部它更是被廣泛的使用,眾多的開(kāi)發(fā)以及運(yùn)維同學(xué)都迫切的想要了解nginx模塊的開(kāi)發(fā)和它的內(nèi)部原理,但是國(guó)內(nèi)卻沒(méi)有一本關(guān)于這方面的書(shū),源于此我們決定自己來(lái)寫(xiě)一本。本書(shū)的作者為淘寶核心系統(tǒng)服務(wù)器平臺(tái)組的成員,本書(shū)寫(xiě)作的思路是從模塊開(kāi)發(fā)逐漸過(guò)渡到nginx原理剖析。書(shū)籍的內(nèi)容會(huì)定期在這里更新,歡迎大家提出寶貴意見(jiàn),不管是本書(shū)的內(nèi)容問(wèn)題,還是字詞錯(cuò)誤,都?xì)g迎大家提交issue(章節(jié)標(biāo)題的左側(cè)有評(píng)注按鈕),我們會(huì)及時(shí)的跟進(jìn)。
如下圖:
sofa-rpc
官網(wǎng):https://www.sofastack.tech/projects/sofa-rpc/overview/
Github: https://github.com/sofastack/sofa-rpc
SOFARPC 是螞蟻金服開(kāi)源的一款基于 Java 實(shí)現(xiàn)的 RPC 服務(wù)框架,為應(yīng)用之間提供遠(yuǎn)程服務(wù)調(diào)用能力,具有高可伸縮性,高容錯(cuò)性,目前螞蟻金服所有的業(yè)務(wù)的相互間的 RPC 調(diào)用都是采用 SOFARPC。SOFARPC 為用戶(hù)提供了負(fù)載均衡,流量轉(zhuǎn)發(fā),鏈路追蹤,鏈路數(shù)據(jù)透?jìng)鳎收咸蕹裙δ堋?/p>
SOFARPC 還支持不同的協(xié)議,目前包括 bolt,RESTful,dubbo,H2C 協(xié)議進(jìn)行通信。其中 bolt 是螞蟻金融服務(wù)集團(tuán)開(kāi)放的基于 Netty 開(kāi)發(fā)的網(wǎng)絡(luò)通信框架。
基本原理
- 當(dāng)一個(gè) SOFARPC 的應(yīng)用啟動(dòng)的時(shí)候,如果發(fā)現(xiàn)當(dāng)前應(yīng)用需要發(fā)布 RPC 服務(wù)的話,那么 SOFARPC 會(huì)將這些服務(wù)注冊(cè)到服務(wù)注冊(cè)中心上。如圖中 Service 指向 Registry。
- 當(dāng)引用這個(gè)服務(wù)的 SOFARPC 應(yīng)用啟動(dòng)時(shí),會(huì)從服務(wù)注冊(cè)中心訂閱到相應(yīng)服務(wù)的元數(shù)據(jù)信息。服務(wù)注冊(cè)中心收到訂閱請(qǐng)求后,會(huì)將發(fā)布方的元數(shù)據(jù)列表實(shí)時(shí)推送給服務(wù)引用方。如圖中 Registry 指向 Reference。
- 當(dāng)服務(wù)引用方拿到地址以后,就可以從中選取地址發(fā)起調(diào)用了。如圖中 Reference 指向 Service。
如下圖:
p3c
Github: https://github.com/alibaba/p3c
我們很高興向您介紹《阿里巴巴Java編碼指南》,該指南整合了阿里巴巴集團(tuán)技術(shù)團(tuán)隊(duì)多年來(lái)的最佳編程實(shí)踐。大量的Java編程團(tuán)隊(duì)對(duì)項(xiàng)目中的代碼質(zhì)量提出了苛刻的要求,因?yàn)槲覀児膭?lì)重用和更好地理解彼此的程序。我們?cè)谶^(guò)去看到過(guò)許多編程問(wèn)題。例如,有缺陷的數(shù)據(jù)庫(kù)表結(jié)構(gòu)和索引設(shè)計(jì)可能會(huì)導(dǎo)致軟件體系結(jié)構(gòu)缺陷和性能風(fēng)險(xiǎn)。另一個(gè)例子是難以維護(hù)的令人困惑的代碼結(jié)構(gòu)。此外,沒(méi)有身份驗(yàn)證的易受攻擊的代碼容易受到黑客的攻擊。為了解決這些問(wèn)題,我們?yōu)榘⒗锇桶偷腏ava開(kāi)發(fā)人員開(kāi)發(fā)了本文檔。
如下圖:
AliSQL
Github: https://github.com/alibaba/AliSQL
AliSQL是一個(gè)源于阿里巴巴集團(tuán)的MySQL分支。它基于MySQL官方版本,具有許多功能和性能增強(qiáng)。AliSQL已被證明在生產(chǎn)環(huán)境中非常穩(wěn)定和高效。它可以作為MySQL的免費(fèi)、完全兼容、增強(qiáng)和開(kāi)源的插件替換。
AliSQL自2016年8月以來(lái)一直是一個(gè)開(kāi)源項(xiàng)目。阿里巴巴集團(tuán)的工程師正在積極開(kāi)發(fā)。此外,它還包括來(lái)自Percona、WebScaleSQL和MariaDB的補(bǔ)丁。AliSQL是社區(qū)努力的成果。歡迎大家參與進(jìn)來(lái)。
如下圖:
oceanbase
官網(wǎng):https://open.oceanbase.com/
Github: https://github.com/alibaba/oceanbase
OceanBase是由螞蟻金服、阿里巴巴完全自主研發(fā)的金融級(jí)分布式關(guān)系數(shù)據(jù)庫(kù),始創(chuàng)于2010年。OceanBase具有數(shù)據(jù)強(qiáng)一致、高可用、高性能、在線擴(kuò)展、高度兼容SQL標(biāo)準(zhǔn)和主流關(guān)系數(shù)據(jù)庫(kù)、低成本等特點(diǎn)。OceanBase至今已成功應(yīng)用于支付寶全部核心業(yè)務(wù):交易、支付、會(huì)員、賬務(wù)等系統(tǒng)以及阿里巴巴淘寶(天貓)收藏夾、P4P廣告報(bào)表等業(yè)務(wù)。除在螞蟻金服和阿里巴巴業(yè)務(wù)系統(tǒng)中獲廣泛應(yīng)用外,從2017年開(kāi)始,OceanBase開(kāi)始服務(wù)外部客戶(hù),客戶(hù)包括南京銀行、西安銀行、印度Paytm、人保健康險(xiǎn)等。
如下圖:
fastdfs
官網(wǎng):https://open.oceanbase.com/
Github: https://github.com/happyfish100/fastdfs
FastDFS只能根據(jù)GNU通用公共許可證V3的條款進(jìn)行復(fù)制,該許可證可以在FastDFS源工具包中找到。有關(guān)更多詳細(xì)信息,請(qǐng)?jiān)L問(wèn)FastDFS主頁(yè)。中文:http://www.fastken.com/
FastDFS是一個(gè)開(kāi)源的高性能分布式文件系統(tǒng)。它的主要功能包括:文件存儲(chǔ)、文件同步和文件訪問(wèn)(文件上傳和文件下載),可以解決高容量和負(fù)載平衡問(wèn)題。FastDFS應(yīng)滿(mǎn)足其服務(wù)基于文件的網(wǎng)站的要求,如照片共享網(wǎng)站和視頻共享網(wǎng)站。
FastDFS有兩個(gè)角色:跟蹤器和存儲(chǔ)。跟蹤器負(fù)責(zé)文件訪問(wèn)的調(diào)度和負(fù)載平衡。存儲(chǔ)器存儲(chǔ)文件,其功能是文件管理,包括:文件存儲(chǔ)、文件同步、提供文件訪問(wèn)接口。它還管理元數(shù)據(jù),這些元數(shù)據(jù)是表示為文件的鍵值對(duì)的屬性。例如:width=1024,鍵為“width”,值為“1024”。
跟蹤器和存儲(chǔ)器包含一個(gè)或多個(gè)服務(wù)器。跟蹤器或存儲(chǔ)集群中的服務(wù)器可以隨時(shí)添加到集群或從集群中刪除,而不會(huì)影響在線服務(wù)。跟蹤器集群中的服務(wù)器是對(duì)等的。
按文件卷/組組織以獲得高容量的存儲(chǔ)服務(wù)器。存儲(chǔ)系統(tǒng)包含一個(gè)或多個(gè)卷,這些卷中的文件是獨(dú)立的。整個(gè)存儲(chǔ)系統(tǒng)的容量等于所有卷的容量之和。文件卷包含一個(gè)或多個(gè)存儲(chǔ)服務(wù)器,這些服務(wù)器之間的文件相同。文件卷中的服務(wù)器相互備份,并且所有這些服務(wù)器都是負(fù)載平衡的。將存儲(chǔ)服務(wù)器添加到卷中時(shí),該卷中已存在的文件會(huì)自動(dòng)復(fù)制到此新服務(wù)器,并且在復(fù)制完成后,系統(tǒng)會(huì)將此服務(wù)器聯(lián)機(jī)切換為提供存儲(chǔ)服務(wù)。
如下圖:
rocketmq
官網(wǎng):https://rocketmq.apache.org/
Github: https://github.com/apache/rocketmq/
Apache RocketMQ是一個(gè)分布式消息和流媒體平臺(tái),具有低延遲、高性能和可靠性、萬(wàn)億級(jí)容量和靈活的可擴(kuò)展性。
它提供了多種功能:
- 消息模式,包括發(fā)布/訂閱、請(qǐng)求/回復(fù)和流式傳輸
- 財(cái)務(wù)級(jí)交易消息
- 基于DLedger控制器的內(nèi)置容錯(cuò)和高可用性配置選項(xiàng)
- 內(nèi)置消息跟蹤功能,還支持開(kāi)放跟蹤
- 多功能大數(shù)據(jù)和流媒體生態(tài)系統(tǒng)集成
- 按時(shí)間或偏移量的郵件追溯力
- 可靠的FIFO和同一隊(duì)列中嚴(yán)格有序的消息傳遞
- 高效的推拉式消費(fèi)模式
- 單個(gè)隊(duì)列中的百萬(wàn)級(jí)消息累積容量
- 多種消息傳遞協(xié)議,如gRPC、MQTT、JMS和OpenMessaging
- 靈活的分布式擴(kuò)展部署體系結(jié)構(gòu)
- 閃電式快速批量消息交換系統(tǒng)
- 各種消息過(guò)濾機(jī)制,如SQL和Tag
- 用于隔離測(cè)試和云隔離集群的Docker鏡像
- 功能豐富的管理儀表板,用于配置、度量和監(jiān)控
- 身份驗(yàn)證和授權(quán)
- 免費(fèi)的開(kāi)源連接器,適用于源和接收器
- 輕量級(jí)實(shí)時(shí)計(jì)算
如下圖:
Metamorphosis
Github: https://github.com/killme2008/Metamorphosis
Metamorphosis是淘寶開(kāi)源的一個(gè)Java消息中間件,他類(lèi)似apache-kafka,但不是一個(gè)簡(jiǎn)單的山寨拷貝,而是做了很多改進(jìn)和優(yōu)化,項(xiàng)目的主頁(yè)在淘蝌蚪上。
這是MetaQ的一個(gè)github分支,我做了部分優(yōu)化和改進(jìn),并將meta發(fā)布到maven central repository,還做了一些wiki文檔,我能承諾的是我個(gè)人會(huì)持續(xù)維護(hù)本項(xiàng)目。
MetaQ的淘寶版本已經(jīng)發(fā)展到2.0乃至3.0版本,設(shè)計(jì)原則發(fā)生了變更,有興趣的可以上它的官方網(wǎng)站看。
本分支應(yīng)用在京東,支付寶,騰訊等公司的產(chǎn)品上。
如下圖:
tengine
官網(wǎng):http://tengine.taobao.org/
Github: https://github.com/alibaba/tengine
Tengine是一款由亞洲最大的電子商務(wù)網(wǎng)站淘寶發(fā)起的網(wǎng)絡(luò)服務(wù)器。它基于Nginx HTTP服務(wù)器,并具有許多高級(jí)功能。Tengine在包括淘寶網(wǎng)和天貓網(wǎng)在內(nèi)的世界100強(qiáng)網(wǎng)站上已經(jīng)被證明是非常穩(wěn)定和高效的。
Tengine自2011年12月以來(lái)一直是一個(gè)開(kāi)源項(xiàng)目。Tengine團(tuán)隊(duì)正在積極開(kāi)發(fā),其核心成員來(lái)自淘寶、搜狗和其他互聯(lián)網(wǎng)公司。Tengine是一個(gè)社區(qū)的努力,鼓勵(lì)每個(gè)人都參與進(jìn)來(lái)。
特性
- 繼承Nginx-1.18.0的所有特性,兼容Nginx的配置;
- 支持HTTP的CONNECT方法,可用于正向代理場(chǎng)景;
- 支持異步OpenSSL,可使用硬件如:QAT進(jìn)行HTTPS的加速與卸載;
- 增強(qiáng)相關(guān)運(yùn)維、監(jiān)控能力,比如異步打印日志及回滾,本地DNS緩存,內(nèi)存監(jiān)控等;
- Stream模塊支持server_name指令;
- 更加強(qiáng)大的負(fù)載均衡能力,包括一致性hash模塊、會(huì)話保持模塊,還可以對(duì)后端的服務(wù)器進(jìn)行主動(dòng)健康檢查,根據(jù)服務(wù)器狀態(tài)自動(dòng)上線下線,以及動(dòng)態(tài)解析upstream中出現(xiàn)的域名;
- 輸入過(guò)濾器機(jī)制支持。通過(guò)使用這種機(jī)制Web應(yīng)用防火墻的編寫(xiě)更為方便;
- 支持設(shè)置proxy、memcached、fastcgi、scgi、uwsgi在后端失敗時(shí)的重試次數(shù);
- 動(dòng)態(tài)腳本語(yǔ)言Lua支持。擴(kuò)展功能非常高效簡(jiǎn)單;
- 支持按指定關(guān)鍵字(域名,url等)收集Tengine運(yùn)行狀態(tài);
- 組合多個(gè)CSS、JavaScript文件的訪問(wèn)請(qǐng)求變成一個(gè)請(qǐng)求;
- 自動(dòng)去除空白字符和注釋從而減小頁(yè)面的體積
- 自動(dòng)根據(jù)CPU數(shù)目設(shè)置進(jìn)程個(gè)數(shù)和綁定CPU親緣性;
- 監(jiān)控系統(tǒng)的負(fù)載和資源占用從而對(duì)系統(tǒng)進(jìn)行保護(hù);
- 顯示對(duì)運(yùn)維人員更友好的出錯(cuò)信息,便于定位出錯(cuò)機(jī)器;;
- 更強(qiáng)大的防攻擊(訪問(wèn)速度限制)模塊;
- 更方便的命令行參數(shù),如列出編譯的模塊列表、支持的指令等;
- 支持Dubbo協(xié)議;
- 可以根據(jù)訪問(wèn)文件類(lèi)型設(shè)置過(guò)期時(shí)間;
如下圖:
otter
Github: https://github.com/alibaba/otter
環(huán)境搭建 & 打包
環(huán)境搭建:
- 進(jìn)入 $otter_home/lib 目錄
- 執(zhí)行:bash install.sh
打包:
- 進(jìn)入$otter_home目錄
- 執(zhí)行:mvn clean install -Dmaven.test.skip -Denv=release
- 發(fā)布包位置:$otter_home/target
項(xiàng)目背景
阿里巴巴B2B公司,因?yàn)闃I(yè)務(wù)的特性,賣(mài)家主要集中在國(guó)內(nèi),買(mǎi)家主要集中在國(guó)外,所以衍生出了杭州和美國(guó)異地機(jī)房的需求,同時(shí)為了提升用戶(hù)體驗(yàn),整個(gè)機(jī)房的架構(gòu)為雙A,兩邊均可寫(xiě),由此誕生了otter這樣一個(gè)產(chǎn)品。
otter第一版本可追溯到04~05年,此次外部開(kāi)源的版本為第4版,開(kāi)發(fā)時(shí)間從2011年7月份一直持續(xù)到現(xiàn)在,目前阿里巴巴B2B內(nèi)部的本地/異地機(jī)房的同步需求基本全上了otter4。
目前同步規(guī)模:
- 同步數(shù)據(jù)量6億
- 文件同步1.5TB(2000w張圖片)
- 涉及200+個(gè)數(shù)據(jù)庫(kù)實(shí)例之間的同步
- 80+臺(tái)機(jī)器的集群規(guī)模
工作原理
原理描述:
1. 基于Canal開(kāi)源產(chǎn)品,獲取數(shù)據(jù)庫(kù)增量日志數(shù)據(jù)。 什么是Canal, 請(qǐng)點(diǎn)擊
2. 典型管理系統(tǒng)架構(gòu),manager(web管理)+node(工作節(jié)點(diǎn))
a. manager運(yùn)行時(shí)推送同步配置到node節(jié)點(diǎn)
b. node節(jié)點(diǎn)將同步狀態(tài)反饋到manager上
3. 基于zookeeper,解決分布式狀態(tài)調(diào)度的,允許多node節(jié)點(diǎn)之間協(xié)同工作.
如下圖:
GraphScope
官網(wǎng):https://graphscope.io/
Github: https://github.com/alibaba/GraphScope
背景
2008年,阿里巴巴開(kāi)始嘗試使用 MySQL 支撐其業(yè)務(wù),開(kāi)發(fā)了圍繞 MySQL 相關(guān)的中間件和工具,Cobar/TDDL(目前為阿里云DRDS產(chǎn)品),解決了單機(jī) Oracle 無(wú)法滿(mǎn)足的擴(kuò)展性問(wèn)題,當(dāng)時(shí)也掀起一股去IOE項(xiàng)目的浪潮,愚公這項(xiàng)目因此而誕生,其要解決的目標(biāo)就是幫助用戶(hù)完成從 Oracle 數(shù)據(jù)遷移到 MySQL 上,完成去 IOE 的重要一步工作。
GraphScope是一個(gè)統(tǒng)一的分布式圖形計(jì)算平臺(tái),通過(guò)用戶(hù)友好的Python接口,為在計(jì)算機(jī)集群上執(zhí)行各種圖形操作提供了一站式環(huán)境。GraphScope結(jié)合了阿里巴巴的幾項(xiàng)重要技術(shù),簡(jiǎn)化了計(jì)算集群上大規(guī)模圖形數(shù)據(jù)的多階段處理:包括分別用于分析、交互和圖形神經(jīng)網(wǎng)絡(luò)(GNN)計(jì)算的GRAPE、MaxGraph和graph Learn(GL),以及提供高效內(nèi)存數(shù)據(jù)傳輸?shù)钠咸褕@存儲(chǔ)。
如下圖:
SREWorks
官網(wǎng):https://sreworks.cn/
Github: https://github.com/alibaba/SREWorks
SREWorks 專(zhuān)注于以應(yīng)用為中心的開(kāi)發(fā)模式,提供一站式云原生數(shù)智化運(yùn)維SaaS(軟件即服務(wù))管理套件。支撐企業(yè)的應(yīng)用及資源管理和運(yùn)維開(kāi)發(fā)兩大核心能力,幫助企業(yè)快速實(shí)現(xiàn)云原生應(yīng)用及資源的交付目標(biāo)。
SREWorks 是什么?
谷歌在2003年提出了一種崗位叫做 SRE (Site Reliability Engineer,站點(diǎn)可靠性工程師),它是軟件工程師和系統(tǒng)管理員的結(jié)合,重視運(yùn)維人員的開(kāi)發(fā)能力,要求運(yùn)維日常瑣事在50%以?xún)?nèi),另外50%精力開(kāi)發(fā)自動(dòng)化工具減少人力需求。
SREWorks 作為阿里云大數(shù)據(jù)SRE團(tuán)隊(duì)對(duì)SRE理念的工程實(shí)踐,專(zhuān)注于以應(yīng)用為中心的一站式“云原生”、“數(shù)智化”運(yùn)維 SaaS 管理套件,提供企業(yè)應(yīng)用&資源管理及運(yùn)維開(kāi)發(fā)兩大核心能力,幫助企業(yè)實(shí)現(xiàn)云原生應(yīng)用&資源的交付運(yùn)維。
阿里云大數(shù)據(jù) SRE 團(tuán)隊(duì)天然靠近大數(shù)據(jù)和AI,對(duì)大數(shù)據(jù)&AI技術(shù)非常熟悉,且具有隨取隨用的大數(shù)據(jù)&AI算力資源,一直努力踐行“數(shù)據(jù)化”、“智能化”的運(yùn)維理念,行業(yè)里的 DataOps(數(shù)據(jù)化運(yùn)維)最早由該團(tuán)隊(duì)提出。SREWorks 中有一套端到端的 DataOps 閉環(huán)工程化實(shí)踐,包括標(biāo)準(zhǔn)的運(yùn)維數(shù)倉(cāng)、數(shù)據(jù)運(yùn)維平臺(tái)、運(yùn)營(yíng)中心等。
傳統(tǒng)IT運(yùn)維領(lǐng)域已經(jīng)有大量?jī)?yōu)秀的開(kāi)源運(yùn)維平臺(tái),反觀云原生場(chǎng)景,目前還缺乏一些體系化的運(yùn)維解決方案。隨著云原生時(shí)代大趨勢(shì)的到來(lái),阿里云大數(shù)據(jù) SRE 團(tuán)隊(duì)將SREWorks運(yùn)維平臺(tái)開(kāi)源,希望為運(yùn)維工程師們提供開(kāi)箱即用的運(yùn)維平臺(tái)。
SREWorks 有什么優(yōu)勢(shì)?
回歸到運(yùn)維領(lǐng)域的需求,無(wú)論上層產(chǎn)品和業(yè)務(wù)形態(tài)怎么變化,運(yùn)維本質(zhì)上解決的還是“質(zhì)量、成本、效率、安全”相關(guān)需求。SREWorks 用一個(gè)運(yùn)維 SaaS 應(yīng)用界面來(lái)支撐上述需求,同時(shí)以“數(shù)智”思想為內(nèi)核驅(qū)動(dòng) SaaS 能力,具體包括交付、監(jiān)測(cè)、管理、控制、運(yùn)營(yíng)、服務(wù)六部分。
如下圖:
x-render
官網(wǎng): https://xrender.fun/
Github: https://github.com/alibaba/x-render
阿里 - 很易用的中后臺(tái)「表單 / 表格 / 圖表」解決方案
優(yōu)勢(shì)
- FormRender:像寫(xiě)一個(gè) input 一樣寫(xiě)表單
- TableRender:協(xié)議生成 & 高度靈活的搜索列表
- ChartRender:傻瓜式的圖表繪制庫(kù)
- FormGenerator:中后臺(tái)表單可視化搭建生成利器
如下圖:
最后
一臺(tái)電腦,一個(gè)鍵盤(pán),盡情揮灑智慧的人生;幾行數(shù)字,幾個(gè)字母,認(rèn)真編寫(xiě)生活的美好;
一 個(gè)靈感,一段程序,推動(dòng)科技進(jìn)步,促進(jìn)社會(huì)發(fā)展。?