国内大公司的开源项目一览表(包含mysql读写分离等)
原文地址:http://gad.qq.com/article/detail/34413?sessionUserType=BFT.PARAMS.239074.TASKID&ADUIN=731373934&ADSESSION=1508293481&ADTAG=CLIENT.QQ.5533_.0&ADPUBNO=26719
奇虎360?https://github.com/Qihoo360
1.MySQL中間層 Atlas
Atlas是由 Qihoo 360,? Web平臺部基礎(chǔ)架構(gòu)團(tuán)隊開發(fā)維護(hù)的一個基于MySQL協(xié)議的數(shù)據(jù)中間層項目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基礎(chǔ)上,修改了大量bug,添加了很多功能特性。目前該項目在360公司內(nèi)部得到了廣泛應(yīng)用,很多MySQL業(yè)務(wù)已經(jīng)接入了Atlas平臺,每天承載的讀寫請求數(shù)達(dá)幾十億條。
主要功能:
* 讀寫分離
* 從庫負(fù)載均衡
* IP過濾
* SQL語句黑白名單
* 自動分表
更多內(nèi)容:https://github.com/Qihoo360/Atlas
?
2.360黑科技=》DroidPlugin?
DroidPlugin 是360手機助手在 Android 系統(tǒng)上實現(xiàn)了一種新的插件機制:它可以在無需安裝、修改的情況下運行APK文件,此機制對改進(jìn)大型APP的架構(gòu),實現(xiàn)多團(tuán)隊協(xié)作開發(fā)具有一定的好處。
特點:
支持Androd 2.3以上系統(tǒng)
插件APK完全不需做任何修改,可以獨立安裝運行、也可以做插件運行。要以插件模式運行某個APK,你無需重新編譯、無需知道其源碼。
插件的四大組件完全不需要在Host程序中注冊,支持Service、Activity、BroadcastReceiver、ContentProvider四大組件
插件之間、Host程序與插件之間會互相認(rèn)為對方已經(jīng)"安裝"在系統(tǒng)上了。
API低侵入性:極少的API。HOST程序只是需要一行代碼即可集成Droid Plugin
超強隔離:插件之間、插件與Host之間完全的代碼級別的隔離:不能互相調(diào)用對方的代碼。通訊只能使用Android系統(tǒng)級別的通訊方法。
支持所有系統(tǒng)API
資源完全隔離:插件之間、與Host之間實現(xiàn)了資源完全隔離,不會出現(xiàn)資源竄用的情況。
實現(xiàn)了進(jìn)程管理,插件的空進(jìn)程會被及時回收,占用內(nèi)存低。
插件的靜態(tài)廣播會被當(dāng)作動態(tài)處理,如果插件沒有運行(即沒有插件進(jìn)程運行),其靜態(tài)廣播也永遠(yuǎn)不回被觸發(fā)。
更多查看:https://github.com/Qihoo360/DroidPlugin/
?
3.高性能分布式存儲服務(wù) HustStore
huststore 是一個高性能的分布式存儲服務(wù),不但提供了?10w QPS?級別的 kv 存儲的功能,還提供了 hash、set 等一系列數(shù)據(jù)結(jié)構(gòu)的支持,并且支持?二進(jìn)制?的 kv 存儲,可以完全取代 Redis 的功能。此外,huststore 還結(jié)合特有的 HA 模塊實現(xiàn)了分布式消息隊列的功能,包括消息的流式推送,以及消息的 發(fā)布-訂閱 等功能,可以完全取代 RabbitMQ 的功能。
特性
huststore 分為 hustdb 以及 HA 模塊兩大部分。hustdb (存儲引擎)的底層設(shè)計采用了自主開發(fā)的 fastdb,通過一套獨特的 md5 db 將QPS 提升至 10w 級別的水準(zhǔn)(含網(wǎng)絡(luò)層的開銷)。HA 以 nginx 模塊的方式開發(fā)。nginx 是工業(yè)級的 http server 標(biāo)準(zhǔn),得益于此,huststore 具備以下特性:
-
高吞吐量
hustdb 的網(wǎng)絡(luò)層采用了開源的?libevhtp?來實現(xiàn),結(jié)合自主研發(fā)的高性能 fastdb 存儲引擎,性能測試 QPS 在?10w?以上。 -
高并發(fā)
參考 nginx 的并發(fā)能力。 -
高可用性
huststore 整體架構(gòu)支持 Replication (master-master),支持 load balance 。
HA 的可用性由nginx 的 master-worker 架構(gòu)所保證。當(dāng)某一個 worker 意外掛掉時, master 會自動再啟動一個 worker 進(jìn)程,而且多個 worker 之間是相互獨立的,從而保證了 HA 的高可用性。
huststore 的高可用性由其整體架構(gòu)特點保證。由于 hustdb 的存儲節(jié)點采用了 master-master 的結(jié)構(gòu),當(dāng)某一個存儲節(jié)點掛掉時,HA 會自動將請求打到另外一臺 master,同時 HA 會按照自動進(jìn)行負(fù)載均衡,將數(shù)據(jù)分布存儲在多個 hustdb節(jié)點上,因此存儲引擎不存在單點限制。
同時 HA 集群本身也是分布式的設(shè)計,而且每個 HA 節(jié)點都是獨立的,當(dāng)某一臺 HA 掛掉時, LVS 會自動將請求打到其他可用的 HA 節(jié)點,從而解決了 HA 得單點限制。 -
通用性的接口
huststore 使用 http 作為通用協(xié)議,因此客戶端的實現(xiàn)不限制于語言。 -
支持二進(jìn)制的 key-value
-
更多查看:https://github.com/Qihoo360/huststore
?
4.分布式配置管理工具 QConf
QConf 是奇虎 360 內(nèi)部分布式配置管理工具。用來替代傳統(tǒng)的配置文件,使得配置信息和程序代碼分離,同時配置變化能夠?qū)崟r同步到客戶端,而且保證用戶高效讀取配置,這使的工程師從瑣碎的配置修改、代碼提交、配置上線流程中解放出來,極大地簡化了配置管理工作。
特點
-
一處修改,所有機器實時同步更新
-
高效讀取配置
-
安裝部署方便,使用簡單
-
服務(wù)器宕機、網(wǎng)絡(luò)中斷、集群遷移等異常情況對用戶透明
-
支持c/c 、shell、php、python、lua 等語言
更多查看:https://github.com/Qihoo360/QConf
?
5.開源類Redis存儲系統(tǒng)?Pika
Pika 是 360 DBA 和基礎(chǔ)架構(gòu)組聯(lián)合開發(fā)的類 Redis 存儲系統(tǒng),完全支持 Redis 協(xié)議,用戶不需要修改任何代碼,就可以將服務(wù)遷移至 Pika。有維護(hù) Redis 經(jīng)驗的 DBA 維護(hù) Pika 不需要學(xué)習(xí)成本。
Pika 主要解決的是用戶使用 Redis 的內(nèi)存大小超過 50G、80G 等等這樣的情況,會遇到啟動恢復(fù)時間長,一主多從代價大,硬件成本貴,緩沖區(qū)容易寫滿等問題。Pika 就是針對這些場景的一個解決方案。
特點
-
容量大,支持百G數(shù)據(jù)量的存儲
-
兼容redis,不用修改代碼即可平滑從redis遷移到pika
-
支持主從(slaveof)
-
完善的運維命令
更多內(nèi)容:https://github.com/Qihoo360/pika
?
6.對象緩存服務(wù)器 kmemcache
分布式linux內(nèi)核內(nèi)存對象緩存服務(wù)器,實現(xiàn)基于memcached?v1.4.15,基本兼容memcached的所有操作。經(jīng)初步測試,內(nèi)存數(shù)據(jù)操作比memcached快1倍,網(wǎng)絡(luò)并發(fā)量比memcached的也大許多,目前處于alpha版本。
優(yōu)點:由于在內(nèi)核的socket層實現(xiàn),所有處理網(wǎng)絡(luò)事件性能比epoll機制快,另外無需內(nèi)存由用戶空間到內(nèi)核空間的拷貝。
缺點:不建議在32bits下使用。
更多內(nèi)容:?https://github.com/Qihoo360/kmemcache
?
7.ngx_http_subrange_module
當(dāng)Nginx作為文件下載服務(wù)的反向代理,用戶請求一個非常大的文件的時候,它會一直占滿反向代理服務(wù)器與后端主機之間的帶寬。因為nginx一次獲取整個文件,緩沖獲取到的文件,導(dǎo)致客戶端不能馬上讀取到。帶寬使用和iowait會很高。
ngx_http_subrange_module就是為了解決這個問題,它能分割HTTP requests。將大數(shù)據(jù)量的HTTP請求切分為多個子請求,當(dāng)下載一個1 G的文件,subrange將從后端主機中下載文件塊,比如先獲取5 M,然后再獲取5 M,直到客戶端下載完整個文件。
更多查看:https://github.com/Qihoo360/ngx_http_subrange_module
?
8.同步到異步的類庫 Mario
Mario是一個讓編寫從同步到異步的類庫,它的線程安全較大,易于使用。Mario 的最基本的想法就是為了減少人員的安排,降低成本和時間投入。但是有了這個類庫,操作人員就可以抽出精力做別的事情了。所以 Mario 類庫能夠很輕易的解決你的問題,你只需要你自己的消息功能。
引擎類型:
-
memory,這種類型就是將數(shù)據(jù)緩沖存儲器留在內(nèi)存里。
-
file,這種類型就是能夠在本地日志路徑里創(chuàng)建做出一個?write2file。
更多查看:https://github.com/Qihoo360/Mario
?
其他系列請去360github庫觀看
百度 Baidu?https://github.com/fex-team/
https://github.com/ecomfe
?
1.UEditor 編輯器
UEditor是由百度web前端研發(fā)部開發(fā)所見即所得富文本web編輯器,具有輕量,可定制,注重用戶體驗等特點。
主要特點:
輕量級:代碼精簡,加載迅速。
定制化:
全新的分層理念,滿足多元化的需求。
采用三層架構(gòu):
1. 核心層: 為命令層提供底層API,如range/selection/domUtils類。
2. 命令插件層: 基于核心層開發(fā)command命令,命令之間相互獨立。
3. 界面層: 為命令層提供用戶使用界面。
滿足不同層次用戶的需求。
https://github.com/fex-team/ueditor
https://github.com/fex-team/umeditor
?
2.ECharts 圖表庫
ECharts開源來自百度商業(yè)前端數(shù)據(jù)可視化團(tuán)隊,基于html5 Canvas,是一個純Javascript圖表庫,提供直觀,生動,可交互,可個性化定制的數(shù)據(jù)可視化圖表。創(chuàng)新的拖拽重計算、數(shù)據(jù)視圖、值域漫游等特性大大增強了用戶體驗,賦予了用戶對數(shù)據(jù)進(jìn)行挖掘、整合的能力。提供商業(yè)產(chǎn)品常用圖表,底層基于ZRender(一個全新的輕量級canvas類庫),創(chuàng)建了坐標(biāo)系,圖例,提示,工具箱等基礎(chǔ)組件,并在此上構(gòu)建出折線圖(區(qū)域圖)、柱狀圖(條狀圖)、散點圖(氣泡圖)、餅圖(環(huán)形圖)、K線圖、地圖、力導(dǎo)向布局圖以及和弦圖,同時支持任意維度的堆積和多圖表混合展現(xiàn)。
更多:https://github.com/ecomfe/echarts
?
ECharts-X是?ECharts?團(tuán)隊推出的全新 3D 可視化庫,它是基于 ECharts 的擴展,底層深度整合了 WebGL 庫QTEK和 Canvas2D 庫ZRender。
擴展:https://github.com/ecomfe/echarts-x
?
3.WebUploader 上傳控件
WebUploader 是由Baidu WebFE(FEX)團(tuán)隊開發(fā)的一個簡單的以HTML5為主,FLASH為輔的現(xiàn)代文件上傳組件。在現(xiàn)代的瀏覽器里面能充分發(fā)揮HTML5的優(yōu)勢,同時又不摒棄主流IE瀏覽器,延用原來的FLASH運行時,兼容IE6 ,Andorid 4 ,IOS 6 。兩套運行時,同樣的調(diào)用方式,可供用戶任意選用。采用大文件分片并發(fā)上傳,極大的提高了文件上傳效率。
https://github.com/fex-team/webuploader
?
4.百度腦圖?KityMinder
KityMinder 是百度FEX團(tuán)隊的f-cube小組(原UEditor小組)的又一力作。作為一款在線的腦圖編輯工具,它有著很多Native編輯工具的交互體驗。KM與UE有著一樣的宗旨,就是注重最終用戶的使用體驗。同時,它充分發(fā)揮了Web云存儲的優(yōu)勢,可以直接將編輯中的腦圖同步到云端。此外,借由獨創(chuàng)的 “云盤分享”功能,用戶可以一鍵將當(dāng)前編輯的腦圖直接生成在線鏈接共享給其他用戶,實現(xiàn)無縫溝通。
KM是基于SVG技術(shù)實現(xiàn),使用JavaScript html實現(xiàn)。支持絕大多數(shù)的主流瀏覽器。
支持列表如下
1. chrome
2. firefox
3. safari
4. ie9-11
https://github.com/fex-team/kityminder
?
5.人工智能系統(tǒng) WARP-CTC
WARP-CTC 基于 CTC 方法,當(dāng)前可用的一些 CTC 實現(xiàn)通常要求大量的內(nèi)存或者是慢十到幾百倍。
百度研究所首席科學(xué)家 Andrew Ng 稱他的研究主要是人工神經(jīng)網(wǎng)絡(luò)如何在圖形處理單元 (GPUs) 上運行,讓 WARP-CTC 實現(xiàn)對 GPUs 和 x86 CPUs 的支持。
connectionist temporal classification (CTC) 方法可以追溯到 2006 年,在 Swiss AI 研究所 IDSIA 論文上有記錄。 百度研究所開發(fā)的 WARP-CTC 就基于 CTC 方案,但是改進(jìn)了其自身的語音識別功能
https://github.com/baidu-research/warp-ctc
?
其他系列請去baidu github庫觀看
騰訊?QQ?http://alloyteam.github.io/
https://github.com/AlloyTeam/Mars
https://github.com/tencent-wechat
1.WeUI?為微信Web服務(wù)量身設(shè)計
WeUI 是一套同微信原生視覺體驗一致的基礎(chǔ)樣式庫,由微信官方設(shè)計團(tuán)隊為微信 Web 開發(fā)量身設(shè)計,可以令用戶的使用感知更加統(tǒng)一。包含button、cell、dialog、?progress、?toast、article、actionsheet、icon等各式元素。
https://github.com/weui/weui
?
2.手機前端開發(fā)調(diào)試?yán)?vConsole
我們在開發(fā)手機版網(wǎng)頁的時候,常常會出現(xiàn)下面的情景:
?(1) 開發(fā)時,在自己電腦上運行得好好的,在手機上打開就掛了,但是手機上又看不到error log;?
?(2) 上線后,某用戶表示頁面失靈,但我們自己又重現(xiàn)不出來,看不到用戶側(cè)的出錯信息。
如果說(1)還可以通過電腦連接手機以查看log來解決,那(2)在沒有完善的前端上報體系時就非常被動了。
作為開發(fā)者,我們的訴求很簡單:有沒有快捷的方法在手機前端頁面看到log日志?vConsole就這樣出現(xiàn)了!
https://github.com/WechatFE/vConsole
?
3.專業(yè)級Web圖像處理引擎 AlloyImage
AlloyImage是一個使用Javascript語言開發(fā)的,基于Web的在線圖像處理引擎,除了核心底層圖像處理引擎,還同時集成了一些方便快捷的圖像處理API,您可以將它簡單快捷的引用到您的Web網(wǎng)頁中,做出與PhotoShop一樣的優(yōu)美效果。甚至,你可以用AlloyImage來開發(fā)一個Web在線圖像處理軟件。
https://github.com/AlloyTeam/AlloyImage
https://github.com/AlloyTeam/AlloyPhoto?
?
4.?GoPng?圖片合并并生成CSS
Css Sprite,有時也稱為雪碧圖、精靈圖,是每一個前端開都會遇到的問題,也是常見的小圖片加載優(yōu)化手段。?
在線版本:https://alloyteam.github.io/gopng/
源碼地址:https://github.com/AlloyTeam/gopng
合成分解:https://github.com/luyongfugx/hcSpriteCuter?(一個由多張小圖合并而成的雪碧圖中摳出其中一張或者幾張圖片)
?
5.可視化Web構(gòu)建工具 AlloyDesigner
AlloyDesigner 是一款致力于提高前端生產(chǎn)效率的瀏覽器內(nèi)運行工具,AlloyDesigner Chrome F12(Especially with WorkSpace) ?打造前端新的開發(fā)和測試模式
https://github.com/AlloyTeam/AlloyDesigner
?
6.Koala跨平臺圖形編譯工具
Koala是一款預(yù)處理器語言圖形編譯工具,支持Less、Sass、CoffeeScript、Compass framework?的即時編譯。 無需手動輸入命令去編譯,后臺監(jiān)聽文件是否有改變,如有修改會自動進(jìn)行編譯。能夠大大提升?Web?開發(fā)中的工作效率。
功能特性
-
多語言支持?支持Less、Sass、CoffeeScript 和 Compass Framework。
-
實時編譯?監(jiān)聽文件,當(dāng)文件改變時自動執(zhí)行編譯,這一切都在后臺運行,無需人工操作。
-
編譯選項?可以設(shè)置各個語言的編譯選項。
-
項目配置?支持為項目創(chuàng)建一個全局配置,為文件設(shè)置統(tǒng)一編譯選項。
-
錯誤提示?在編譯時如果遇到語法的錯誤,koala將在右下角彈出錯誤信息,方便開發(fā)者定位代碼錯誤位置。
-
跨平臺?Windows、Linux、Mac都能完美運行。
系統(tǒng)支持及要求
Koala支持跨平臺運行,完美兼容Windows、Linux與Mac 。
Linux系統(tǒng)下需安裝好ruby運行環(huán)境, e.g.?$ sudo apt-get install ruby.
https://github.com/oklai/koala
?
7.輕量級 CSS3 動畫庫 JX.Animate
JX.Animate 是一個開源的輕量級的CSS3動畫庫。動畫可以使用標(biāo)準(zhǔn)的CSS3關(guān)鍵幀動畫(KeyFrame)制作,也可以使用JavaScript制作,而且還可以支持在JavaScript中動態(tài)生成動畫關(guān)鍵幀。
https://github.com/AlloyTeam/JXAnimate
?
8.Fanvas swf轉(zhuǎn)為html5 canvas
Fanvas是一個把swf轉(zhuǎn)為html5 canvas動畫的系統(tǒng),由兩部分組成:Actionscript實現(xiàn)的解析器、js運行庫。Flash做動畫是最成熟最高效的方式,但由于終端基本不支持Flash播放,這給終端的動畫制作帶來了不少麻煩。Fanvas是Flash和Canvas的完美結(jié)合,可以把swf(包括矢量和位圖)完美地轉(zhuǎn)化為canvas動畫.
https://github.com/TencentOpen/Fanvas
?
9.隨身調(diào)測平臺 GT
GT(隨身調(diào))是APP的隨身調(diào)測平臺,它是直接運行在手機上的“集成調(diào)測環(huán)境”(IDTE, Integrated Debug Environment)。利用GT,僅憑一部手機,無需連接電腦,您即可對APP進(jìn)行快速的性能測試(CPU、內(nèi)存、流量、電量、幀率/流暢度等等)、 開發(fā)日志的查看、Crash日志查看、網(wǎng)絡(luò)數(shù)據(jù)包的抓取、APP內(nèi)部參數(shù)的調(diào)試、真機代碼耗時統(tǒng)計等。如果您覺得GT提供的功能還不夠滿足您的需要,您還 可以利用GT提供的基礎(chǔ)API自行開發(fā)有特殊功能的GT插件,幫助您解決更加復(fù)雜的APP調(diào)試問題。
https://github.com/TencentOpen/GT
?
10.Frozen UI?移動端UI框架
Frozen UI是一個開源的簡單易用,輕量快捷的移動端UI框架。基于手Q樣式規(guī)范,選取最常用的組件,做成手Q公用離線包減少請求,升級方式友好,文檔完善,目前全面應(yīng)用在騰訊手Q增值業(yè)務(wù)中。
https://github.com/frozenui/frozenui
?
11.LivePool??Web 開發(fā)調(diào)試工具
LivePool 是一個基于 NodeJS,類似 Fiddler 支持抓包和本地替換的 Web 開發(fā)調(diào)試工具,是 Tencent AlloyTeam 在開發(fā)實踐過程總結(jié)出的一套的便捷的 WorkFlow 以及調(diào)試方案。
特性
-
基于 NodeJS, 跨平臺
-
支持 http 抓包和本地替換調(diào)試,Https/WebSockets 直接代理轉(zhuǎn)發(fā)(暫不支持本地替換)
-
便捷的 UI 管理界面,跟 Fiddler 類似,降低學(xué)習(xí)成本
-
可以脫離 UI 后臺運行,適應(yīng)于某些不需要抓包,只需要使用替換和簡單路由的場景
-
基于項目的替換規(guī)則管理,方便高效,規(guī)則支持拖曳排序
-
支持基于請求路徑的本地文件替換,支持基于請求路徑的路由轉(zhuǎn)發(fā)(host 配置)
-
替換類型支持:文件/文件夾替換,combo合并替換,qzmin替換(批量combo),delay延時等
-
支持自動設(shè)置系統(tǒng)代理
-
支持規(guī)則過濾,只顯示關(guān)注的請求
-
提供構(gòu)建 http get/post 請求界面,方便接口調(diào)試
-
特色功能:模擬gprs/3g等低網(wǎng)速(mac only)
-
特色功能:支持離線站點到本地,并自動代碼格式化
https://github.com/rehorn/livepool
?
12.KNVProtoEngine?高性能樹型協(xié)議處理引擎
KNV是一個模式自由的高性能樹型協(xié)議處理引擎,是對Key-Value的一個通用結(jié)構(gòu)化擴展。
應(yīng)用特性
正如NoSQL對SQL的徹底變革一樣,KNV是對Key-Value的徹底變革!
大家都很熟悉Key-Value系統(tǒng),但KV操作極不方便:
-- 你不得不自己做樂觀鎖(讀返回seq->修改->帶seq寫->seq變化則重頭開始);
-- 你不得不拉取一堆數(shù)據(jù),然后再提取你想要的部分;
-- 為了修改一個bit,你不得不把一串?dāng)?shù)據(jù)拉取修改后再一起提交更新
不過現(xiàn)在有KNV,一切都解決了。KNV時代來了,你還在猶豫嗎?
應(yīng)用場景
KNV是專門針對以Protocol Buffers(或類似樹型結(jié)構(gòu))存儲的存儲系統(tǒng)開發(fā)的,有3個應(yīng)用場景:
存儲系統(tǒng)?處理用戶請求的通用解決方法(Get/Set/Delete),可以適配任意用戶自定義的數(shù)據(jù)結(jié)構(gòu)。
代理/通用邏輯層?服務(wù)器處理Protocol Buffers協(xié)議的通用方法 – 比如通用Proxy,透傳多個協(xié)議, 對請求包進(jìn)行鑒權(quán)、限頻、統(tǒng)計等等操作,還支持對包體內(nèi)容進(jìn)行審計,使用KNV協(xié)議, 這種方法就有可能而且很簡單。
原生態(tài)?Protocol Buffers打解包庫?的高性能代替品。
https://github.com/TencentOpen/KNVProtoEngine
?
13.Behaviac 游戲AI的開發(fā)框架組件
Behaviac是游戲AI的開發(fā)框架組件,也是游戲原型的快速設(shè)計工具。支持行為樹BT,狀態(tài)機FSM,HTN等多種范式,方便的編輯和調(diào)試。支持全平臺,適用于客戶端和服務(wù)器,助力游戲快速迭代開發(fā)。編輯器可以運行在PC上,操作方便直觀可靠,支持實時和離線調(diào)試;編輯器可以導(dǎo)出xml,bson等多種格式,更可以導(dǎo)出C ,C#源碼,提供最高效率。運行時支持全平臺,有C 和C#兩個版本,原生支持Unity。
已被《天天炫斗》、《QQ飛車》、《全民突擊》、《全民奪寶》、《九龍戰(zhàn)》等游戲及其他更多預(yù)研項目使用。
https://github.com/TencentOpen/behaviac
?
14.現(xiàn)代構(gòu)建系統(tǒng) Typhoon Blade
Blade主要定位于linux下的大型C 項目,密切配合研發(fā)流程,比如單元測試,持續(xù)集成,覆蓋率統(tǒng)計等。但像unix下的文本過濾程序一 樣,保持相對的獨立性,可以單獨運行。目前重點支持i386/x86_64 Linux,未來可以考慮支持其他的類Unix系統(tǒng)。
特點:
-
自動分析頭文件依賴關(guān)系,構(gòu)建受影響的代碼。
-
增量編譯和鏈接,只構(gòu)建因變更受影響而需要構(gòu)建的。
-
自動計算庫的間接依賴,庫的作者只需要寫出直接依賴,構(gòu)建時自動檢查所依賴的庫是否需要重新構(gòu)建。
-
在任意代碼樹的任意子目錄下都能構(gòu)建。
-
支持一次遞歸構(gòu)建多個目錄下的所有目標(biāo),也支持只構(gòu)建任意的特定的目標(biāo)。
-
無論構(gòu)建什么目標(biāo),這些目標(biāo)所依賴的目標(biāo)也會被自動連坐更新。
-
內(nèi)置 debug/release 兩種構(gòu)建類型。
-
彩色高亮構(gòu)建過程中的錯誤信息。
-
支持?ccache
-
支持?distcc
-
支持基于構(gòu)建多平臺目標(biāo)
-
支持構(gòu)建時選擇編譯器(不同版本的gcc,clang等)
-
支持編譯?protobuf,lex,?yacc,?swig
-
支持自定義規(guī)則
-
支持測試,在命令行跑多個測試
-
支持并行測試(多個測試進(jìn)程并發(fā)運行)
-
支持增量測試(無需重新運行的測試程序自動跳過)
-
集成?gperftools,自動檢測測試程序的內(nèi)存泄露
-
構(gòu)建腳本 vim 語法高亮
-
svn 式的子命令命令行接口。
-
支持 bash 命令行補全
-
用 Python 編寫,無需編譯,直接安裝使用。
徹底避免以下問題:
-
頭文件更新,受影響的模塊沒有重新構(gòu)建。
-
被依賴的庫需要更新,而構(gòu)建時沒有被更新,比如某子目錄依賴遙遠(yuǎn)的某外部目錄的代碼,我在這個目錄構(gòu)建,外部目錄的代碼會被自動檢查是否也需要重新構(gòu)建。
https://github.com/chen3feng/typhoon-blade
?
15.RapidJSON?C 的JSON開發(fā)包
Rapidjson 是一個 C 的快速 JSON 解析器和生成器,使用 SAX/DOM 風(fēng)格的 API 設(shè)計。
https://github.com/miloyip/rapidjson
?
16.?微信開源PhxSQL
PhxSQL是一個兼容MySQL、服務(wù)高可用、數(shù)據(jù)強一致的關(guān)系型數(shù)據(jù)庫集群。PhxSQL以單Master多Slave方式部署,在集群內(nèi)超過一半機器存活的情況下,可自身實現(xiàn)自動Master切換,且保證數(shù)據(jù)一致性。
https://github.com/tencent-wechat/phxsql
?
?更多請自行查看:http://alloyteam.github.io/?https://github.com/tencent-wechat
新浪:WeiBo?https://github.com/weibocom
1.分布式緩存服務(wù)器 memcachedb
memcachedb是 一個由新浪網(wǎng)的開發(fā)人員開放出來的開源項目,給memcached分布式緩存服務(wù)器添加了Berkeley DB的持久化存儲機制和異步主輔復(fù)制機制,讓memcached具備了事務(wù)恢復(fù)能力、持久化能力和分布式復(fù)制能力,非常適合于需要超高性能讀寫速度,但是 不需要嚴(yán)格事務(wù)約束,能夠被持久化保存的應(yīng)用場景,例如memcachedb被應(yīng)用在新浪博客上面。
https://github.com/stvchu/memcachedb
2.動態(tài)流量管理方案 Upsync
Upsync,微博開源基于Nginx容器動態(tài)流量管理方案 。Nginx 以其超高的性能與穩(wěn)定性,在業(yè)界獲得了廣泛的使用,微博的七層就大量使用了 Nginx 。結(jié)合 Nginx 的健康檢查模塊,以及動態(tài) reload 機制,可以近乎無損的服務(wù)的升級上線與擴容。這個時候擴容的頻次比較低,大多數(shù)情況下是有計劃的擴容。Upsync,開發(fā)了模塊 nginx-upsync-module,它的功能是拉取 consul 的后端 server 的列表,并更新 Nginx 的路由信息。此模塊不依賴于任何第三方模塊。consul 作為 Nginx 的 db,利用 consul 的 KV 服務(wù),每個 Nginx work 進(jìn)程獨立的去拉取各個 upstream 的配置,并更新各自的路由。
https://github.com/weibocom/nginx-upsync-module
3.高性能的內(nèi)核 Socket 實現(xiàn) Fastsocket
Fastsocket 是一個高擴展性的 Socket 以及 Linux 內(nèi)核的底層網(wǎng)絡(luò)實現(xiàn)。可以在多核機器上提供極好的性能,此外使用和維護(hù)還非常簡單。目前該項目已經(jīng)在新浪的生產(chǎn)環(huán)境中使用。該項目由清華大學(xué)和新浪網(wǎng)聯(lián)合組成的 Fastos 團(tuán)隊開發(fā),該團(tuán)隊的使命是提升 Linux 內(nèi)核的效率。Fastsocket 目前已經(jīng)使用在新浪微博的生產(chǎn)環(huán)境上,主要用于提供負(fù)載均衡服務(wù)的 HAProxy,線上實際性能提升一倍,從2014年3月份穩(wěn)定運行至今,預(yù)計2014年底完成負(fù)載均衡全部集群的 Fastsocket 升級。Fastsocket 完全兼容 BSD Socket API,現(xiàn)有各類基于 Socket 的網(wǎng)絡(luò)應(yīng)用可以直接使用 Fastsockt。?目前經(jīng)過兼容測試的常用服務(wù)軟件有:HAProxy、Nginx、Lighttpd、Redis 和 Memcached。
https://github.com/fastos/fastsocket
4.輕量級 RPC 框架 Motan
Motan 是一套高性能、易于使用的分布式遠(yuǎn)程服務(wù)調(diào)用(RPC)框架。
功能
-
支持通過spring配置方式集成,無需額外編寫代碼即可為服務(wù)提供分布式調(diào)用能力。
-
支持集成consul、zookeeper等配置服務(wù)組件,提供集群環(huán)境的服務(wù)發(fā)現(xiàn)及治理能力。
-
支持動態(tài)自定義負(fù)載均衡、跨機房流量調(diào)整等高級服務(wù)調(diào)度能力。
-
基于高并發(fā)、高負(fù)載場景進(jìn)行優(yōu)化,保障生產(chǎn)環(huán)境下RPC服務(wù)高可用。
https://github.com/weibocom/motan
5.TCP 性能剖析工具 Tcpdive
Tcpdive 是 TCP 性能剖析工具,主要特性:
-
更多 TCP 內(nèi)部性能信息
-
定量評估 TCP 性能改進(jìn)
-
描述在 TCP 層的 HTTP 處理,依賴于 HTTP Apps
-
容易部署,使用友好
Tcpdive 已經(jīng)在新浪的生產(chǎn)環(huán)境上部署使用:
-
提高微博圖片服務(wù)質(zhì)量
-
提高微博視頻服務(wù)質(zhì)量
-
在有線和無線網(wǎng)絡(luò)中比較 TCP 性能
-
記錄不同應(yīng)用的 TCP 流量
https://github.com/fastos/tcpdive
6.PHP框架 Yaf
Yaf是一個C語言編寫的PHP框架,Yaf 的特點:
用C語言開發(fā)的PHP框架, 相比原生的PHP, 幾乎不會帶來額外的性能開銷.
所有的框架類, 不需要編譯, 在PHP啟動的時候加載, 并常駐內(nèi)存.
更短的內(nèi)存周轉(zhuǎn)周期, 提高內(nèi)存利用率, 降低內(nèi)存占用率.
靈巧的自動加載. 支持全局和局部兩種加載規(guī)則, 方便類庫共享.
高性能的視圖引擎.
高度靈活可擴展的框架, 支持自定義視圖引擎, 支持插件, 支持自定義路由等等.
內(nèi)建多種路由, 可以兼容目前常見的各種路由協(xié)議.
強大而又高度靈活的配置文件支持. 并支持緩存配置文件, 避免復(fù)雜的配置結(jié)構(gòu)帶來的性能損失.
在框架本身,對危險的操作習(xí)慣做了禁止.
更快的執(zhí)行速度, 更少的內(nèi)存占用.
https://github.com/laruence/yaf
小米:XiaoMi?https://github.com/XiaoMi
1.分布式的發(fā)布和監(jiān)控系統(tǒng) Minos
Minos 是小米公司開發(fā)的一個分布式的發(fā)布和監(jiān)控系統(tǒng)。最初是小米開發(fā)的用來在 Hadoop 和 ZooKeeper 集群上發(fā)布和管理的工具。Minos 可輕松擴展來支持其他的系統(tǒng),目前已經(jīng)支持包括 HDFS、YARN 和 Impala 。
https://github.com/XiaoMi/minos
?
2.互聯(lián)網(wǎng)企業(yè)級監(jiān)控系統(tǒng) OpenFalcon
Open-Falcon 是小米運維部開源的一款互聯(lián)網(wǎng)企業(yè)級監(jiān)控系統(tǒng)解決方案.
監(jiān)控系統(tǒng)是整個運維環(huán)節(jié),乃至整個產(chǎn)品生命周期中最重要的一環(huán),事前及時預(yù)警發(fā)現(xiàn)故障,事后提供翔實的數(shù)據(jù)用于追查定位問題。監(jiān)控系統(tǒng)作為一個成熟的運維產(chǎn)品,業(yè)界有很多開源的實現(xiàn)可供選擇。當(dāng)公司剛剛起步,業(yè)務(wù)規(guī)模較小,運維團(tuán)隊也剛剛建立的初期,選擇一款開源的監(jiān)控系統(tǒng),是一個省時省力,效率最高的方案。之后,隨著業(yè)務(wù)規(guī)模的持續(xù)快速增長,監(jiān)控的對象也越來越多,越來越復(fù)雜,監(jiān)控系統(tǒng)的使用對象也從最初少數(shù)的幾個SRE,擴大為更多的DEVS,SRE。這時候,監(jiān)控系統(tǒng)的容量和用戶的“使用效率”成了最為突出的問題。
監(jiān)控系統(tǒng)業(yè)界有很多杰出的開源監(jiān)控系統(tǒng)。我們在早期,一直在用zabbix,不過隨著業(yè)務(wù)的快速發(fā)展,以及互聯(lián)網(wǎng)公司特有的一些需求,現(xiàn)有的開源的監(jiān)控系統(tǒng)在性能、擴展性、和用戶的使用效率方面,已經(jīng)無法支撐了。
因此,我們在過去的一年里,從互聯(lián)網(wǎng)公司的一些需求出發(fā),從各位SRE、SA、DEVS的使用經(jīng)驗和反饋出發(fā),結(jié)合業(yè)界的一些大的互聯(lián)網(wǎng)公司做監(jiān)控,用監(jiān)控的一些思考出發(fā),設(shè)計開發(fā)了小米的監(jiān)控系統(tǒng):Open-Falcon。
Highlights and features
-
數(shù)據(jù)采集免配置:agent自發(fā)現(xiàn)、支持Plugin、主動推送模式
-
容量水平擴展:生產(chǎn)環(huán)境每秒50萬次數(shù)據(jù)收集、告警、存儲、繪圖,可持續(xù)水平擴展。
-
告警策略自發(fā)現(xiàn):Web界面、支持策略模板、模板繼承和覆蓋、多種告警方式、支持回調(diào)動作。
-
告警設(shè)置人性化:支持最大告警次數(shù)、告警級別設(shè)置、告警恢復(fù)通知、告警暫停、不同時段不同閾值、支持維護(hù)周期,支持告警合并。
-
歷史數(shù)據(jù)高效查詢:秒級返回上百個指標(biāo)一年的歷史數(shù)據(jù)。
-
Dashboard人性化:多維度的數(shù)據(jù)展示,用戶自定義Dashboard等功能。
-
架構(gòu)設(shè)計高可用:整個系統(tǒng)無核心單點,易運維,易部署。
https://github.com/XiaoMi/open-falcon
?
3.物聯(lián)網(wǎng)框架 IoT.js
IoT.js 旨在為物聯(lián)網(wǎng)提供一個基于 Web 技術(shù)的可相互操作的服務(wù)平臺。IoT.js 的目標(biāo)是要在資源受限的設(shè)備上良好運行,例如只有幾 KB 的 RAM。所以它支持廣泛的物聯(lián)。
https://github.com/Samsung/iotjs
豆瓣 DouBan?https://github.com/douban
?
1.分布式計算框架 DPark
DPark 是 Spark 的 Python 克隆,是一個Python實現(xiàn)的分布式計算框架,可以非常方便地實現(xiàn)大規(guī)模數(shù)據(jù)處理和迭代計算。 DPark 由豆瓣實現(xiàn),目前豆瓣內(nèi)部的絕大多數(shù)數(shù)據(jù)分析都使用DPark 完成,正日趨完善。
https://github.com/douban/dpark
?
2.iOS/Mac 音頻播放器 DOUAudioStreamer
DOUAudioStreamer 是 iOS 和 Mac 的基于核心音頻的流媒體音頻播放器。
https://github.com/douban/DOUAudioStreamer
?
3.CODE 豆瓣代碼托管系統(tǒng)
Douban CODE 是豆瓣開發(fā)的一個基于?git?版本控制系統(tǒng)的協(xié)作平臺。
CODE —— C: Community O: Original D: Developer E: Eldamar
目前 CODE 僅開放了一個框架,支持:
-
clone & push project
-
create project
-
create user
準(zhǔn)備環(huán)境
-
MySQL
-
Memcached
-
Python >= 2.7
-
pip >= 1.4.1
-
virtualenv
-
git
https://github.com/douban/code
?
網(wǎng)易 NetEase?https://github.com/netease
?
1.分布式TCP壓力測試工具 tcpcopy
tcpcopy是一種應(yīng)用請求復(fù)制(基于tcp的packets)工具,其應(yīng)用領(lǐng)域較廣,目前已經(jīng)應(yīng)用于國內(nèi)各大互聯(lián)網(wǎng)公司。
總體說來,tcpcopy主要有如下功能:
1)分布式壓力測試工具,利用在線數(shù)據(jù),可以測試系統(tǒng)能夠承受的壓力大小(遠(yuǎn)比ab壓力測試工具真實地多),也可以提前發(fā)現(xiàn)一些bug
2)普通上線測試,可以發(fā)現(xiàn)新系統(tǒng)是否穩(wěn)定,提前發(fā)現(xiàn)上線過程中會出現(xiàn)的諸多問題,讓開發(fā)者有信心上線
3)對比試驗,同樣請求,針對不同或不同版本程序,可以做性能對比等試驗
4)利用多種手段,構(gòu)造無限在線壓力,滿足中小網(wǎng)站壓力測試要求
5)實戰(zhàn)演習(xí)(架構(gòu)師必備)
https://github.com/session-replay-tools/tcpcopy
?
2.桌面應(yīng)用軟件的跨平臺解決方案 heX
heX 是網(wǎng)易有道搜索部門開發(fā)的一個允許你采用前端技術(shù)(HTML,CSS,JavaScript)開發(fā)桌面應(yīng)用軟件的跨平臺解決方案,基于HTML5 ?node.js,類似appjs。是你開發(fā)桌面應(yīng)用的一種新的選擇,意在解決傳統(tǒng)桌面應(yīng)用開發(fā)中繁瑣的UI和交互開發(fā)工作,使其變的簡單而高效。特別適合重UI,重交互的桌面應(yīng)用軟件。
https://github.com/netease-youdao/hex
https://github.com/netease-youdao/hex-samples
?
3.Android性能測試工具 Emmagee
Emmagee是監(jiān)控指定被測應(yīng)用在使用過程中占用機器的CPU、內(nèi)存、流量資源的性能測試小工具。
支持SDK:Android2.2以及以上版本
Emmagee功能介紹
1、檢測當(dāng)前時間被測應(yīng)用占用的CPU使用率以及總體CPU使用量
2、檢測當(dāng)前時間被測應(yīng)用占用的內(nèi)存量,以及占用的總體內(nèi)存百分比,剩余內(nèi)存量
3、檢測應(yīng)用從啟動開始到當(dāng)前時間消耗的流量數(shù)
4、測試數(shù)據(jù)寫入到CSV文件中,同時存儲在手機中
5、可以選擇開啟浮窗功能,浮窗中實時顯示被測應(yīng)用占用性能數(shù)據(jù)信息
6、在浮窗中可以快速啟動或者關(guān)閉手機的wifi網(wǎng)絡(luò)
https://github.com/NetEase/Emmagee
?
4.基于udp的請求復(fù)制工具 udpcopy
udpcopy用來解決udp應(yīng)用的一個開源軟件,與tcpcopy同屬于xcopy系列,可以導(dǎo)入udp流量到測試系統(tǒng)中去,這樣就可以有效地對系統(tǒng)進(jìn)行各種測試,比如壓力測試,冒煙測試等等。
https://github.com/wangbin579/udpcopy
?
5.實時編輯刷新的前端服務(wù)器 Puer?
(推薦:browser-sync?https://github.com/BrowserSync/browser-sync)
簡而言之,Puer是一個可以實時編輯刷新的前端服務(wù)器。特性一覽:
-
提供一個當(dāng)前或指定路徑的靜態(tài)服務(wù)器
-
所有瀏覽器的實時刷新:編輯css實時更新(update)頁面樣式,其它文件則重載(reload)頁面
-
提供簡單熟悉的mock請求的配置功能,并且配置也是自動更新。
-
可用作代理服務(wù)器,調(diào)試開發(fā)既有服務(wù)器的頁面,可與mock功能配合使用
-
集成了weinre,并提供二維碼地址,方便移動端的調(diào)試
-
可以作為connect中間件使用(前提是后端為nodejs,否則請使用代理模式)
https://github.com/leeluolee/puer
阿里巴巴開源的好軟件太多,請自行選擇所需,我列幾個我們用的
阿里巴巴?Alibaba?https://github.com/alibaba/?https://github.com/thx
1.分布式key/value存儲系統(tǒng) Tair
Tair是由淘寶網(wǎng)自主開發(fā)的Key/Value結(jié)構(gòu)數(shù)據(jù)存儲系統(tǒng),在淘寶網(wǎng)有著大規(guī)模的應(yīng)用。您在登錄淘寶、查看商品詳情頁面或者在淘江湖和好友“搗漿糊”的時候,都在直接或間接地和Tair交互。Tair是一個Key/Value結(jié)構(gòu)數(shù)據(jù)的解決方案,它默認(rèn)支持基于內(nèi)存和文件的兩種存儲方式,分別和我們通常所說的緩存和持久化存儲對應(yīng)。
Tair除了普通Key/Value系統(tǒng)提供的功能,比如get、put、delete以及批量接口外,還有一些附加的實用功能,使得其有更廣的適用場景,包括:
-
Version支持
-
原子計數(shù)器
-
Item支持
https://github.com/alibaba/tair
?
2.TFS?分布式文件系統(tǒng)
TFS(Taobao FileSystem)是一個高可擴展、高可用、高性能、面向互聯(lián)網(wǎng)服務(wù)的分布式文件系統(tǒng),其設(shè)計目標(biāo)是支持海量的非結(jié)構(gòu)化數(shù)據(jù)。
目前,國內(nèi)自主研發(fā)的文件系統(tǒng)可謂鳳毛麟角。淘寶在這一領(lǐng)域做了有效的探索和實踐,Taobao File System(TFS)作為淘寶內(nèi)部使用的分布式文件系統(tǒng),針對海量小文件的隨機讀寫訪問性能做了特殊優(yōu)化,承載著淘寶主站所有圖片、商品描述等數(shù)據(jù)存儲。
https://github.com/alibaba/tfs
?
3.消息中間件 RocketMQ
https://github.com/alibaba/RocketMQ
https://github.com/alibaba/RocketMQ-docs
?
4.分布式計算系統(tǒng)?JStorm
?Jstorm是參考storm的實時流式計算框架,在網(wǎng)絡(luò)IO、線程模型、資源調(diào)度、可用性及穩(wěn)定性上做了持續(xù)改進(jìn),已被越來越多企業(yè)使用
https://github.com/alibaba/jstorm
?
5.淘寶Web服務(wù)器 Tengine
Tengine是由淘寶網(wǎng)發(fā)起的Web服務(wù)器項目。它在Nginx的基礎(chǔ)上,針對大訪問量網(wǎng)站的需求,添加了很多高級功能和特性。Tengine的性能和穩(wěn)定性已經(jīng)在大型的網(wǎng)站如淘寶網(wǎng),天貓商城等得到了很好的檢驗。它的最終目標(biāo)是打造一個高效、穩(wěn)定、安全、易用的Web平臺。
?
以下沿引項目主頁上的特性介紹:
?
-
繼承Nginx-1.2.8的所有特性,100%兼容Nginx的配置;
-
動態(tài)模塊加載(DSO)支持。加入一個模塊不再需要重新編譯整個Tengine;
-
更多負(fù)載均衡算法支持。如會話保持,一致性hash等;
-
輸入過濾器機制支持。通過使用這種機制Web應(yīng)用防火墻的編寫更為方便;
-
動態(tài)腳本語言Lua支持。擴展功能非常高效簡單;
-
支持管道(pipe)和syslog(本地和遠(yuǎn)端)形式的日志以及日志抽樣;
-
組合多個CSS、JavaScript文件的訪問請求變成一個請求;
-
可以對后端的服務(wù)器進(jìn)行主動健康檢查,根據(jù)服務(wù)器狀態(tài)自動上線下線;
-
自動根據(jù)CPU數(shù)目設(shè)置進(jìn)程個數(shù)和綁定CPU親緣性;
-
監(jiān)控系統(tǒng)的負(fù)載和資源占用從而對系統(tǒng)進(jìn)行保護(hù);
-
顯示對運維人員更友好的出錯信息,便于定位出錯機器;
-
更強大的防攻擊(訪問速度限制)模塊;
-
更方便的命令行參數(shù),如列出編譯的模塊列表、支持的指令等;
-
可以根據(jù)訪問文件類型設(shè)置過期時間;
https://github.com/alibaba/tengine
??
6.SeaJS 模塊加載框架
Sea.JS 是一個遵循?CommonJS?規(guī)范的模塊加載框架,可用來輕松愉悅地加載任意 JavaScript 模塊。SeaJS 支持的標(biāo)準(zhǔn)模塊遵循 Modules/Wrappings 規(guī)范的 define 形式,可運行于 Web 瀏覽器以及 node.JS 等環(huán)境中。
https://github.com/seajs/seajs
?
7.阿里巴巴分布式數(shù)據(jù)庫同步系統(tǒng) otter
otter 基于數(shù)據(jù)庫增量日志解析,準(zhǔn)實時同步到本機房或異地機房的mysql/oracle數(shù)據(jù)庫. 一個分布式數(shù)據(jù)庫同步系統(tǒng)。
https://github.com/alibaba/otter
?
8.Taobao Open API 客戶端 TOP?(有Net版)
TOP 是?Taobao Open API?客戶端。
APIs
-
User
-
taobao.user.buyer.get 查詢買家信息API
-
taobao.user.get 獲取單個用戶信息
-
taobao.user.seller.get 查詢賣家用戶信息
-
taobao.users.get 獲取多個用戶信息
-
-
Category (Working)
-
taobao.itemcats.authorize.get 查詢商家被授權(quán)品牌列表和類目列表
-
taobao.itemcats.get 獲取后臺供賣家發(fā)布商品的標(biāo)準(zhǔn)商品類目
-
taobao.itemcats.increment.get 增量獲取后臺類目數(shù)據(jù)
-
taobao.itemprops.get 獲取標(biāo)準(zhǔn)商品類目屬性
-
taobao.itempropvalues.get 獲取標(biāo)準(zhǔn)類目屬性值
-
taobao.topats.itemcats.get 全量獲取后臺類目數(shù)據(jù)
-
-
Shop
-
taobao.shop.get (白名單用戶才能調(diào)用)
-
9.模擬數(shù)據(jù)生成器 Mock.js
Mock.js 是一款模擬數(shù)據(jù)生成器,旨在幫助前端攻城師獨立于后端進(jìn)行開發(fā),幫助編寫單元測試。提供了以下模擬功能:
-
根據(jù)數(shù)據(jù)模板生成模擬數(shù)據(jù)
-
模擬 Ajax 請求,生成并返回模擬數(shù)據(jù)
-
基于 HTML 模板生成模擬數(shù)據(jù)
https://github.com/nuysoft/Mock
?
10.服務(wù)框架?Dubbo
Dubbo 是阿里巴巴公司開源的一個高性能優(yōu)秀的服務(wù)框架,使得應(yīng)用可通過高性能的 RPC 實現(xiàn)服務(wù)的輸出和輸入功能,可以和?Spring框架無縫集成。
主要核心部件:
-
Remoting:?網(wǎng)絡(luò)通信框架,實現(xiàn)了 sync-over-async 和 request-response 消息機制.
-
RPC:?一個遠(yuǎn)程過程調(diào)用的抽象,支持負(fù)載均衡、容災(zāi)和集群功能
-
Registry:?服務(wù)目錄框架用于服務(wù)的注冊和服務(wù)事件發(fā)布和訂閱
https://github.com/alibaba/dubbo
?
11.接口文檔管理工具 RAP
?
RAP通過GUI工具幫助WEB工程師更高效的管理接口文檔,同時通過分析接口結(jié)構(gòu)自動生成Mock數(shù)據(jù)、校驗真實接口的正確性,使接口文檔成為開發(fā)流程中的強依賴。有了結(jié)構(gòu)化的API數(shù)據(jù),RAP可以做的更多,而我們可以避免更多重復(fù)勞動。
?
https://github.com/thx/RAP
?
Nginx7天入門:https://github.com/taobao/nginx-book
?
其他項目:
1.去哪兒:
MySQL自動化運維工具 Inception
MySQL語句的審核,在業(yè)界都已經(jīng)基本被認(rèn)同了,實際上也是對MySQL語句寫法的統(tǒng)一化,標(biāo)準(zhǔn)化,而之前的人工審核,針對標(biāo)準(zhǔn)這個問題其實是很 吃力的,標(biāo)準(zhǔn)越多,DBA越累,開發(fā)也越累。 那么在這個都追求自動化運維的時代,審核也必須要跟上步伐,因此Inception誕生了。而Inception可以做的工作遠(yuǎn)不止是一個自動化審核工 具,同時還具備執(zhí)行,生成對影響數(shù)據(jù)的回滾語句(類似閃回的功能),這樣一條龍服務(wù)的工具,將會給DBA的工作帶來翻天覆地的變化,DBA從此就從繁重的 審核、登上去執(zhí)行,出錯了很難回滾(如果提前沒有備份的話)的被動局面解放了出來,突然發(fā)現(xiàn),做DBA原來可以這么輕松,工作可以不飽和了,那就有更多的 自由時間學(xué)習(xí)、進(jìn)一步向自動化運維平臺的實現(xiàn)等更智能化的方向去發(fā)展,是具有里程碑意義的。
https://github.com/mysql-inception/inception
2.大眾點評:
實時應(yīng)用監(jiān)控平臺 CAT
CAT 由大眾點評開發(fā)的,基于 Java 的實時應(yīng)用監(jiān)控平臺,包括實時應(yīng)用監(jiān)控,業(yè)務(wù)監(jiān)控。
CAT 支持的監(jiān)控消息類型包括:
-
Transaction?適合記錄跨越系統(tǒng)邊界的程序訪問行為,比如遠(yuǎn)程調(diào)用,數(shù)據(jù)庫調(diào)用,也適合執(zhí)行時間較長的業(yè)務(wù)邏輯監(jiān)控,Transaction用來記錄一段代碼的執(zhí)行時間和次數(shù)。
-
Event?用來記錄一件事發(fā)生的次數(shù),比如記錄系統(tǒng)異常,它和transaction相比缺少了時間的統(tǒng)計,開銷比transaction要小。
-
Heartbeat?? 表示程序內(nèi)定期產(chǎn)生的統(tǒng)計信息, 如CPU%, MEM%, 連接池狀態(tài), 系統(tǒng)負(fù)載等。
-
Metric?用于記錄業(yè)務(wù)指標(biāo)、指標(biāo)可能包含對一個指標(biāo)記錄次數(shù)、記錄平均值、記錄總和,業(yè)務(wù)指標(biāo)最低統(tǒng)計粒度為1分鐘。
-
Trace?用于記錄基本的trace信息,類似于log4j的info信息,這些信息僅用于查看一些相關(guān)信息
消息樹
CAT監(jiān)控系統(tǒng)將每次URL、Service的請求內(nèi)部執(zhí)行情況都封裝為一個完整的消息樹、消息樹可能包括Transaction、Event、Heartbeat、Metric和Trace信息。
https://github.com/dianping/cat
?
3.搜狐:
Redis云管理平臺 CacheCloud
CacheCloud提供一個Redis云管理平臺:實現(xiàn)多種類型(Redis Standalone、Redis Sentinel、Redis Cluster)自動部署、解決Redis實例碎片化現(xiàn)象、提供完善統(tǒng)計、監(jiān)控、運維功能、減少開發(fā)人員的運維成本和誤操作,提高機器的利用率,提供靈活的伸縮性,提供方便的接入客戶端。
https://github.com/sohutv/cachecloud
基于 MySQL 的數(shù)據(jù)庫中間件 SOHU-DBProxy
SOHU-DBProxy 是由 搜狐 數(shù)據(jù)庫團(tuán)隊開發(fā)維護(hù)的一個基于MySQL協(xié)議的數(shù)據(jù)中間層項目。它在MySQL官方推出的MySQL-Proxy?0.8.3版本的基礎(chǔ)上, 修改了大量bug,添加了很多功能特性。現(xiàn)在已經(jīng)在sohu的多個業(yè)務(wù)線上使用
DBProxy 主要功能:
1 即使在同一個連接(只要不在同一個事務(wù)中)也能連接復(fù)用
2 負(fù)載均衡提高讀性能,支持動態(tài)擴展
3 動態(tài)添加的SQL審核和過濾。能夠統(tǒng)計的SQL長時間運行影響性能,并且阻止其運行
4 用戶連接限制
5 自動摘除宕機的DB
6 讀寫分離(當(dāng)前版本沒有,代碼和測試已經(jīng)完成,沒有合并到當(dāng)前版本)
https://github.com/SOHUDBA/SOHU-DBProxy
58:https://github.com/58code
大眾點評:https://github.com/dianping
豌豆莢:https://github.com/wandoulabs
華為:https://github.com/HuaweiBigData
總結(jié)
以上是生活随笔為你收集整理的国内大公司的开源项目一览表(包含mysql读写分离等)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++标准输入流、输出流以及文件流
- 下一篇: Mysql数据库---约束类型_mysq