阿里,百度,騰訊,360,新浪,網(wǎng)易,小米等
文章匯總:https://www.cnblogs.com/dotnetcrazy/p/9160514.html
目錄:
紅色字體是現(xiàn)階段比較火的
----------------------------------------------------------------------------------------------------------------
奇虎360**** https://github.com/Qihoo360
****
****
1.MySQL中間層 Atlas
Atlas是由 Qihoo 360, Web平臺部基礎架構團隊開發(fā)維護的一個基于MySQL協(xié)議的數(shù)據(jù)中間層項目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基礎上,修改了大量bug,添加了很多功能特性。目前該項目在360公司內(nèi)部得到了廣泛應用,很多MySQL業(yè)務已經(jīng)接入了Atlas平臺,每天承載的讀寫請求數(shù)達幾十億條。
主要功能:
- 讀寫分離
- 從庫負載均衡
- IP過濾
- SQL語句黑白名單
- 自動分表
更多內(nèi)容:https://github.com/Qihoo360/Atlas
**2.360黑科技=》DroidPlugin **
?DroidPlugin 是360手機助手在 Android 系統(tǒng)上實現(xiàn)了一種新的插件機制:它可以在無需安裝、修改的情況下運行APK文件,此機制對改進大型APP的架構,實現(xiàn)多團隊協(xié)作開發(fā)具有一定的好處。
特點:
- 支持Androd 2.3以上系統(tǒng)
- 插件APK完全不需做任何修改,可以獨立安裝運行、也可以做插件運行。要以插件模式運行某個APK,你無需重新編譯、無需知道其源碼。
- 插件的四大組件完全不需要在Host程序中注冊,支持Service、Activity、BroadcastReceiver、ContentProvider四大組件
- 插件之間、Host程序與插件之間會互相認為對方已經(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)了進程管理,插件的空進程會被及時回收,占用內(nèi)存低。
- 插件的靜態(tài)廣播會被當作動態(tài)處理,如果插件沒有運行(即沒有插件進程運行),其靜態(tài)廣播也永遠不回被觸發(fā)。
更多查看:https://github.com/Qihoo360/DroidPlugin/
3.高性能分布式存儲服務 HustStore
huststore 是一個高性能的分布式存儲服務,不但提供了 10w QPS 級別的 kv 存儲的功能,還提供了 hash、set 等一系列數(shù)據(jù)結構的支持,并且支持 二進制 的 kv 存儲,可以完全取代 Redis 的功能。此外,huststore 還結合特有的 HA 模塊實現(xiàn)了分布式消息隊列的功能,包括消息的流式推送,以及消息的 發(fā)布-訂閱 等功能,可以完全取代 RabbitMQ 的功能。
特性
huststore 分為 hustdb 以及 HA 模塊兩大部分。hustdb (存儲引擎)的底層設計采用了自主開發(fā)的 fastdb,通過一套獨特的 md5 db 將QPS 提升至 10w 級別的水準(含網(wǎng)絡層的開銷)。HA 以 nginx 模塊的方式開發(fā)。nginx 是工業(yè)級的 http server 標準,得益于此,huststore 具備以下特性:
- 高吞吐量
hustdb 的網(wǎng)絡層采用了開源的 libevhtp 來實現(xiàn),結合自主研發(fā)的高性能 fastdb 存儲引擎,性能測試 QPS 在 10w 以上。
- 高并發(fā)
參考 nginx 的并發(fā)能力。
- 高可用性
huststore 整體架構支持 Replication (master-master),支持 load balance 。
HA 的可用性由nginx 的 master-worker 架構所保證。當某一個 worker 意外掛掉時, master 會自動再啟動一個 worker 進程,而且多個 worker 之間是相互獨立的,從而保證了 HA 的高可用性。
huststore 的高可用性由其整體架構特點保證。由于 hustdb 的存儲節(jié)點采用了 master-master 的結構,當某一個存儲節(jié)點掛掉時,HA 會自動將請求打到另外一臺 master,同時 HA 會按照自動進行負載均衡,將數(shù)據(jù)分布存儲在多個 hustdb節(jié)點上,因此存儲引擎不存在單點限制。
同時 HA 集群本身也是分布式的設計,而且每個 HA 節(jié)點都是獨立的,當某一臺 HA 掛掉時, LVS 會自動將請求打到其他可用的 HA 節(jié)點,從而解決了 HA 得單點限制。
- 通用性的接口
huststore 使用 http 作為通用協(xié)議,因此客戶端的實現(xiàn)不限制于語言。
- 支持二進制的 key-value
更多查看:https://github.com/Qihoo360/huststore
4.分布式配置管理工具 QConf
QConf 是奇虎 360 內(nèi)部分布式配置管理工具。用來替代傳統(tǒng)的配置文件,使得配置信息和程序代碼分離,同時配置變化能夠?qū)崟r同步到客戶端,而且保證用戶高效讀取配置,這使的工程師從瑣碎的配置修改、代碼提交、配置上線流程中解放出來,極大地簡化了配置管理工作。
特點
- 一處修改,所有機器實時同步更新
- 高效讀取配置
- 安裝部署方便,使用簡單
- 服務器宕機、網(wǎng)絡中斷、集群遷移等異常情況對用戶透明
- 支持c/c++、shell、php、python、lua 等語言
更多查看:https://github.com/Qihoo360/QConf
5.開源類Redis存儲系統(tǒng) Pika
Pika 是 360 DBA 和基礎架構組聯(lián)合開發(fā)的類 Redis 存儲系統(tǒng),完全支持 Redis 協(xié)議,用戶不需要修改任何代碼,就可以將服務遷移至 Pika。有維護 Redis 經(jīng)驗的 DBA 維護 Pika 不需要學習成本。
Pika 主要解決的是用戶使用 Redis 的內(nèi)存大小超過 50G、80G 等等這樣的情況,會遇到啟動恢復時間長,一主多從代價大,硬件成本貴,緩沖區(qū)容易寫滿等問題。Pika 就是針對這些場景的一個解決方案。
特點
- 容量大,支持百G數(shù)據(jù)量的存儲
- 兼容redis,不用修改代碼即可平滑從redis遷移到pika
- 支持主從(slaveof)
- 完善的運維命令
更多內(nèi)容:https://github.com/Qihoo360/pika
6.對象緩存服務器 kmemcache
分布式linux內(nèi)核內(nèi)存對象緩存服務器,實現(xiàn)基于memcached v1.4.15,基本兼容memcached的所有操作。經(jīng)初步測試,內(nèi)存數(shù)據(jù)操作比memcached快1倍,網(wǎng)絡并發(fā)量比memcached的也大許多,目前處于alpha版本。
優(yōu)點:由于在內(nèi)核的socket層實現(xiàn),所有處理網(wǎng)絡事件性能比epoll機制快,另外無需內(nèi)存由用戶空間到內(nèi)核空間的拷貝。
缺點:不建議在32bits下使用。
更多內(nèi)容: https://github.com/Qihoo360/kmemcache
7.ngx_http_subrange_module
當Nginx作為文件下載服務的反向代理,用戶請求一個非常大的文件的時候,它會一直占滿反向代理服務器與后端主機之間的帶寬。因為nginx一次獲取整個文件,緩沖獲取到的文件,導致客戶端不能馬上讀取到。帶寬使用和iowait會很高。
ngx_http_subrange_module就是為了解決這個問題,它能分割HTTP requests。將大數(shù)據(jù)量的HTTP請求切分為多個子請求,當下載一個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/

1.UEditor 編輯器
UEditor是由百度web前端研發(fā)部開發(fā)所見即所得富文本web編輯器,具有輕量,可定制,注重用戶體驗等特點。
主要特點:
輕量級:代碼精簡,加載迅速。
定制化:
全新的分層理念,滿足多元化的需求。
采用三層架構:
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ù)可視化團隊,基于html5 Canvas,是一個純Javascript圖表庫,提供直觀,生動,可交互,可個性化定制的數(shù)據(jù)可視化圖表。創(chuàng)新的拖拽重計算、數(shù)據(jù)視圖、值域漫游等特性大大增強了用戶體驗,賦予了用戶對數(shù)據(jù)進行挖掘、整合的能力。提供商業(yè)產(chǎn)品常用圖表,底層基于ZRender(一個全新的輕量級canvas類庫),創(chuàng)建了坐標系,圖例,提示,工具箱等基礎組件,并在此上構建出折線圖(區(qū)域圖)、柱狀圖(條狀圖)、散點圖(氣泡圖)、餅圖(環(huán)形圖)、K線圖、地圖、力導向布局圖以及和弦圖,同時支持任意維度的堆積和多圖表混合展現(xiàn)。
更多:https://github.com/ecomfe/echarts
ECharts-X是 ECharts 團隊推出的全新 3D 可視化庫,它是基于 ECharts 的擴展,底層深度整合了 WebGL 庫QTEK和 Canvas2D 庫ZRender。
擴展:https://github.com/ecomfe/echarts-x
3.WebUploader 上傳控件
WebUploader 是由Baidu WebFE(FEX)團隊開發(fā)的一個簡單的以HTML5為主,F(xiàn)LASH為輔的現(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團隊的f-cube小組(原UEditor小組)的又一力作。作為一款在線的腦圖編輯工具,它有著很多Native編輯工具的交互體驗。KM與UE有著一樣的宗旨,就是注重最終用戶的使用體驗。同時,它充分發(fā)揮了Web云存儲的優(yōu)勢,可以直接將編輯中的腦圖同步到云端。此外,借由獨創(chuàng)的 “云盤分享”功能,用戶可以一鍵將當前編輯的腦圖直接生成在線鏈接共享給其他用戶,實現(xiàn)無縫溝通。
KM是基于SVG技術實現(xiàn),使用JavaScript+html實現(xiàn)。支持絕大多數(shù)的主流瀏覽器。
支持列表如下
1. chrome
2. firefox
3. safari
4. ie9-11https://github.com/fex-team/kityminder
5.人工智能系統(tǒng) WARP-CTC
WARP-CTC 基于 CTC 方法,當前可用的一些 CTC 實現(xiàn)通常要求大量的內(nèi)存或者是慢十到幾百倍。
百度研究所首席科學家 Andrew Ng 稱他的研究主要是人工神經(jīng)網(wǎng)絡如何在圖形處理單元 (GPUs) 上運行,讓 WARP-CTC 實現(xiàn)對 GPUs 和 x86 CPUs 的支持。
connectionist temporal classification (CTC) 方法可以追溯到 2006 年,在 Swiss AI 研究所 IDSIA 論文上有記錄。 百度研究所開發(fā)的 WARP-CTC 就基于 CTC 方案,但是改進了其自身的語音識別功能
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服務量身設計
WeUI 是一套同微信原生視覺體驗一致的基礎樣式庫,由微信官方設計團隊為微信 Web 開發(fā)量身設計,可以令用戶的使用感知更加統(tǒng)一。包含
button、cell、dialog、progress、toast、article、actionsheet、icon等各式元素。2.手機前端開發(fā)調(diào)試利器 vConsole
我們在開發(fā)手機版網(wǎng)頁的時候,常常會出現(xiàn)下面的情景:
(1) 開發(fā)時,在自己電腦上運行得好好的,在手機上打開就掛了,但是手機上又看不到error log;
(2) 上線后,某用戶表示頁面失靈,但我們自己又重現(xiàn)不出來,看不到用戶側的出錯信息。
如果說(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構建工具 AlloyDesigner
AlloyDesigner 是一款致力于提高前端生產(chǎn)效率的瀏覽器內(nèi)運行工具,AlloyDesigner + Chrome F12(Especially with WorkSpace) 打造前端新的開發(fā)和測試模式
https://github.com/AlloyTeam/AlloyDesigner
6.Koala跨平臺圖形編譯工具
Koala是一款預處理器語言圖形編譯工具,支持Less、Sass、CoffeeScript、Compass framework 的即時編譯。 無需手動輸入命令去編譯,后臺監(jiān)聽文件是否有改變,如有修改會自動進行編譯。能夠大大提升
Web開發(fā)中的工作效率。功能特性
- 多語言支持 支持Less、Sass、CoffeeScript 和 Compass Framework。
- 實時編譯 監(jiān)聽文件,當文件改變時自動執(zhí)行編譯,這一切都在后臺運行,無需人工操作。
- 編譯選項 可以設置各個語言的編譯選項。
- 項目配置 支持為項目創(chuàng)建一個全局配置,為文件設置統(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動畫庫。動畫可以使用標準的CSS3關鍵幀動畫(KeyFrame)制作,也可以使用JavaScript制作,而且還可以支持在JavaScript中動態(tài)生成動畫關鍵幀。
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的完美結合,可以把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進行快速的性能測試(CPU、內(nèi)存、流量、電量、幀率/流暢度等等)、 開發(fā)日志的查看、Crash日志查看、網(wǎng)絡數(shù)據(jù)包的抓取、APP內(nèi)部參數(shù)的調(diào)試、真機代碼耗時統(tǒng)計等。如果您覺得GT提供的功能還不夠滿足您的需要,您還 可以利用GT提供的基礎API自行開發(fā)有特殊功能的GT插件,幫助您解決更加復雜的APP調(diào)試問題。
https://github.com/TencentOpen/GT
10.Frozen UI 移動端UI框架
Frozen UI是一個開源的簡單易用,輕量快捷的移動端UI框架?;谑諵樣式規(guī)范,選取最常用的組件,做成手Q公用離線包減少請求,升級方式友好,文檔完善,目前全面應用在騰訊手Q增值業(yè)務中。
https://github.com/frozenui/frozenui
11.LivePool Web 開發(fā)調(diào)試工具
LivePool 是一個基于 NodeJS,類似 Fiddler 支持抓包和本地替換的 Web 開發(fā)調(diào)試工具,是 Tencent AlloyTeam 在開發(fā)實踐過程總結出的一套的便捷的 WorkFlow 以及調(diào)試方案。
特性
- 基于 NodeJS, 跨平臺
- 支持 http 抓包和本地替換調(diào)試,Https/WebSockets 直接代理轉(zhuǎn)發(fā)(暫不支持本地替換)
- 便捷的 UI 管理界面,跟 Fiddler 類似,降低學習成本
- 可以脫離 UI 后臺運行,適應于某些不需要抓包,只需要使用替換和簡單路由的場景
- 基于項目的替換規(guī)則管理,方便高效,規(guī)則支持拖曳排序
- 支持基于請求路徑的本地文件替換,支持基于請求路徑的路由轉(zhuǎn)發(fā)(host 配置)
- 替換類型支持:文件/文件夾替換,combo合并替換,qzmin替換(批量combo),delay延時等
- 支持自動設置系統(tǒng)代理
- 支持規(guī)則過濾,只顯示關注的請求
- 提供構建 http get/post 請求界面,方便接口調(diào)試
- 特色功能:模擬gprs/3g等低網(wǎng)速(mac only)
- 特色功能:支持離線站點到本地,并自動代碼格式化
https://github.com/rehorn/livepool
****12.KNVProtoEngine 高性能樹型協(xié)議處理引擎
KNV是一個模式自由的高性能樹型協(xié)議處理引擎,是對Key-Value的一個通用結構化擴展。
應用特性
正如NoSQL對SQL的徹底變革一樣,KNV是對Key-Value的徹底變革!
大家都很熟悉Key-Value系統(tǒng),但KV操作極不方便:
-- 你不得不自己做樂觀鎖(讀返回seq->修改->帶seq寫->seq變化則重頭開始);
-- 你不得不拉取一堆數(shù)據(jù),然后再提取你想要的部分;
-- 為了修改一個bit,你不得不把一串數(shù)據(jù)拉取修改后再一起提交更新
不過現(xiàn)在有KNV,一切都解決了。KNV時代來了,你還在猶豫嗎?應用場景
KNV是專門針對以Protocol Buffers(或類似樹型結構)存儲的存儲系統(tǒng)開發(fā)的,有3個應用場景:
- 存儲系統(tǒng) 處理用戶請求的通用解決方法(Get/Set/Delete),可以適配任意用戶自定義的數(shù)據(jù)結構。
- 代理/通用邏輯層 服務器處理Protocol Buffers協(xié)議的通用方法 – 比如通用Proxy,透傳多個協(xié)議, 對請求包進行鑒權、限頻、統(tǒng)計等等操作,還支持對包體內(nèi)容進行審計,使用KNV協(xié)議, 這種方法就有可能而且很簡單。
- 原生態(tài) Protocol Buffers打解包庫 的高性能代替品。
https://github.com/TencentOpen/KNVProtoEngine
13.Behaviac 游戲AI的開發(fā)框架組件
Behaviac是游戲AI的開發(fā)框架組件,也是游戲原型的快速設計工具。支持行為樹BT,狀態(tài)機FSM,HTN等多種范式,方便的編輯和調(diào)試。支持全平臺,適用于客戶端和服務器,助力游戲快速迭代開發(fā)。編輯器可以運行在PC上,操作方便直觀可靠,支持實時和離線調(diào)試;編輯器可以導出xml,bson等多種格式,更可以導出C++,C#源碼,提供最高效率。運行時支持全平臺,有C++和C#兩個版本,原生支持Unity。
已被《天天炫斗》、《QQ飛車》、《全民突擊》、《全民奪寶》、《九龍戰(zhàn)》等游戲及其他更多預研項目使用。
https://github.com/TencentOpen/behaviac
14.現(xiàn)代構建系統(tǒng) Typhoon Blade
Blade主要定位于linux下的大型C++項目,密切配合研發(fā)流程,比如單元測試,持續(xù)集成,覆蓋率統(tǒng)計等。但像unix下的文本過濾程序一 樣,保持相對的獨立性,可以單獨運行。目前重點支持i386/x86_64 Linux,未來可以考慮支持其他的類Unix系統(tǒng)。
特點:
- 自動分析頭文件依賴關系,構建受影響的代碼。
- 增量編譯和鏈接,只構建因變更受影響而需要構建的。
- 自動計算庫的間接依賴,庫的作者只需要寫出直接依賴,構建時自動檢查所依賴的庫是否需要重新構建。
- 在任意代碼樹的任意子目錄下都能構建。
- 支持一次遞歸構建多個目錄下的所有目標,也支持只構建任意的特定的目標。
- 無論構建什么目標,這些目標所依賴的目標也會被自動連坐更新。
- 內(nèi)置 debug/release 兩種構建類型。
- 彩色高亮構建過程中的錯誤信息。
- 支持 ccache
- 支持 distcc
- 支持基于構建多平臺目標
- 支持構建時選擇編譯器(不同版本的gcc,clang等)
- 支持編譯 protobuf,lex, yacc, swig
- 支持自定義規(guī)則
- 支持測試,在命令行跑多個測試
- 支持并行測試(多個測試進程并發(fā)運行)
- 支持增量測試(無需重新運行的測試程序自動跳過)
- 集成 gperftools,自動檢測測試程序的內(nèi)存泄露
- 構建腳本 vim 語法高亮
- svn 式的子命令命令行接口。
- 支持 bash 命令行補全
- 用 Python 編寫,無需編譯,直接安裝使用。
徹底避免以下問題:
- 頭文件更新,受影響的模塊沒有重新構建。
- 被依賴的庫需要更新,而構建時沒有被更新,比如某子目錄依賴遙遠的某外部目錄的代碼,我在這個目錄構建,外部目錄的代碼會被自動檢查是否也需要重新構建。
https://github.com/chen3feng/typhoon-blade
15.RapidJSON C++的JSON開發(fā)包
Rapidjson 是一個 C++ 的快速 JSON 解析器和生成器,使用 SAX/DOM 風格的 API 設計。
https://github.com/miloyip/rapidjson
16. 微信開源PhxSQL
PhxSQL是一個兼容MySQL、服務高可用、數(shù)據(jù)強一致的關系型數(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.分布式緩存服務器 memcachedb
memcachedb是 一個由新浪網(wǎng)的開發(fā)人員開放出來的開源項目,給memcached分布式緩存服務器添加了Berkeley DB的持久化存儲機制和異步主輔復制機制,讓memcached具備了事務恢復能力、持久化能力和分布式復制能力,非常適合于需要超高性能讀寫速度,但是 不需要嚴格事務約束,能夠被持久化保存的應用場景,例如memcachedb被應用在新浪博客上面。
https://github.com/stvchu/memcachedb
2.動態(tài)流量管理方案 Upsync
Upsync,微博開源基于Nginx容器動態(tài)流量管理方案 。Nginx 以其超高的性能與穩(wěn)定性,在業(yè)界獲得了廣泛的使用,微博的七層就大量使用了 Nginx 。結合 Nginx 的健康檢查模塊,以及動態(tài) reload 機制,可以近乎無損的服務的升級上線與擴容。這個時候擴容的頻次比較低,大多數(shù)情況下是有計劃的擴容。Upsync,開發(fā)了模塊 nginx-upsync-module,它的功能是拉取 consul 的后端 server 的列表,并更新 Nginx 的路由信息。此模塊不依賴于任何第三方模塊。consul 作為 Nginx 的 db,利用 consul 的 KV 服務,每個 Nginx work 進程獨立的去拉取各個 upstream 的配置,并更新各自的路由。
https://github.com/weibocom/nginx-upsync-module
3.高性能的內(nèi)核 Socket 實現(xiàn) Fastsocket
Fastsocket 是一個高擴展性的 Socket 以及 Linux 內(nèi)核的底層網(wǎng)絡實現(xiàn)??梢栽诙嗪藱C器上提供極好的性能,此外使用和維護還非常簡單。目前該項目已經(jīng)在新浪的生產(chǎn)環(huán)境中使用。該項目由清華大學和新浪網(wǎng)聯(lián)合組成的 Fastos 團隊開發(fā),該團隊的使命是提升 Linux 內(nèi)核的效率。Fastsocket 目前已經(jīng)使用在新浪微博的生產(chǎn)環(huán)境上,主要用于提供負載均衡服務的 HAProxy,線上實際性能提升一倍,從2014年3月份穩(wěn)定運行至今,預計2014年底完成負載均衡全部集群的 Fastsocket 升級。Fastsocket 完全兼容 BSD Socket API,現(xiàn)有各類基于 Socket 的網(wǎng)絡應用可以直接使用 Fastsockt。 目前經(jīng)過兼容測試的常用服務軟件有:HAProxy、Nginx、Lighttpd、Redis 和 Memcached。
https://github.com/fastos/fastsocket
4.輕量級 RPC 框架 Motan
Motan 是一套高性能、易于使用的分布式遠程服務調(diào)用(RPC)框架。
功能
- 支持通過spring配置方式集成,無需額外編寫代碼即可為服務提供分布式調(diào)用能力。
- 支持集成consul、zookeeper等配置服務組件,提供集群環(huán)境的服務發(fā)現(xiàn)及治理能力。
- 支持動態(tài)自定義負載均衡、跨機房流量調(diào)整等高級服務調(diào)度能力。
- 基于高并發(fā)、高負載場景進行優(yōu)化,保障生產(chǎn)環(huán)境下RPC服務高可用。
https://github.com/weibocom/motan
5.TCP 性能剖析工具 Tcpdive
Tcpdive 是 TCP 性能剖析工具,主要特性:
- 更多 TCP 內(nèi)部性能信息
- 定量評估 TCP 性能改進
- 描述在 TCP 層的 HTTP 處理,依賴于 HTTP Apps
- 容易部署,使用友好
Tcpdive 已經(jīng)在新浪的生產(chǎn)環(huán)境上部署使用:
- 提高微博圖片服務質(zhì)量
- 提高微博視頻服務質(zhì)量
- 在有線和無線網(wǎng)絡中比較 TCP 性能
- 記錄不同應用的 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é)議.
- 強大而又高度靈活的配置文件支持. 并支持緩存配置文件, 避免復雜的配置結構帶來的性能損失.
- 在框架本身,對危險的操作習慣做了禁止.
- 更快的執(zhí)行速度, 更少的內(nèi)存占用.
----------------------------------------------------------------------------------------------------------------
小米: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),事前及時預警發(fā)現(xiàn)故障,事后提供翔實的數(shù)據(jù)用于追查定位問題。監(jiān)控系統(tǒng)作為一個成熟的運維產(chǎn)品,業(yè)界有很多開源的實現(xiàn)可供選擇。當公司剛剛起步,業(yè)務規(guī)模較小,運維團隊也剛剛建立的初期,選擇一款開源的監(jiān)控系統(tǒng),是一個省時省力,效率最高的方案。之后,隨著業(yè)務規(guī)模的持續(xù)快速增長,監(jiān)控的對象也越來越多,越來越復雜,監(jiān)控系統(tǒng)的使用對象也從最初少數(shù)的幾個SRE,擴大為更多的DEVS,SRE。這時候,監(jiān)控系統(tǒng)的容量和用戶的“使用效率”成了最為突出的問題。
監(jiān)控系統(tǒng)業(yè)界有很多杰出的開源監(jiān)控系統(tǒng)。我們在早期,一直在用zabbix,不過隨著業(yè)務的快速發(fā)展,以及互聯(lián)網(wǎng)公司特有的一些需求,現(xiàn)有的開源的監(jiān)控系統(tǒng)在性能、擴展性、和用戶的使用效率方面,已經(jīng)無法支撐了。
因此,我們在過去的一年里,從互聯(lián)網(wǎng)公司的一些需求出發(fā),從各位SRE、SA、DEVS的使用經(jīng)驗和反饋出發(fā),結合業(yè)界的一些大的互聯(lián)網(wǎng)公司做監(jiān)控,用監(jiān)控的一些思考出發(fā),設計開發(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ù)據(jù)高效查詢:秒級返回上百個指標一年的歷史數(shù)據(jù)。
- Dashboard人性化:多維度的數(shù)據(jù)展示,用戶自定義Dashboard等功能。
- 架構設計高可用:整個系統(tǒng)無核心單點,易運維,易部署。
https://github.com/XiaoMi/open-falcon
3.物聯(lián)網(wǎng)框架 IoT.js
IoT.js 旨在為物聯(lián)網(wǎng)提供一個基于 Web 技術的可相互操作的服務平臺。IoT.js 的目標是要在資源受限的設備上良好運行,例如只有幾 KB 的 RAM。所以它支持廣泛的物聯(lián)。
----------------------------------------------------------------------------------------------------------------
**豆瓣 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
準備環(huán)境
- MySQL
- Memcached
- Python >= 2.7
- pip >= 1.4.1
- virtualenv
- git
----------------------------------------------------------------------------------------------------------------
網(wǎng)易 NetEase https://github.com/netease

1.分布式TCP壓力測試工具 tcpcopy
tcpcopy是一種應用請求復制(基于tcp的packets)工具,其應用領域較廣,目前已經(jīng)應用于國內(nèi)各大互聯(lián)網(wǎng)公司。
總體說來,tcpcopy主要有如下功能:
1)分布式壓力測試工具,利用在線數(shù)據(jù),可以測試系統(tǒng)能夠承受的壓力大?。ㄟh比ab壓力測試工具真實地多),也可以提前發(fā)現(xiàn)一些bug
2)普通上線測試,可以發(fā)現(xiàn)新系統(tǒng)是否穩(wěn)定,提前發(fā)現(xiàn)上線過程中會出現(xiàn)的諸多問題,讓開發(fā)者有信心上線
3)對比試驗,同樣請求,針對不同或不同版本程序,可以做性能對比等試驗
4)利用多種手段,構造無限在線壓力,滿足中小網(wǎng)站壓力測試要求
5)實戰(zhàn)演習(架構師必備)https://github.com/session-replay-tools/tcpcopy
2.桌面應用軟件的跨平臺解決方案 heX
heX 是網(wǎng)易有道搜索部門開發(fā)的一個允許你采用前端技術(HTML,CSS,JavaScript)開發(fā)桌面應用軟件的跨平臺解決方案,基于HTML5 + node.js,類似appjs。是你開發(fā)桌面應用的一種新的選擇,意在解決傳統(tǒng)桌面應用開發(fā)中繁瑣的UI和交互開發(fā)工作,使其變的簡單而高效。特別適合重UI,重交互的桌面應用軟件。
https://github.com/netease-youdao/hex
https://github.com/netease-youdao/hex-samples
3.Android性能測試工具 Emmagee
Emmagee是監(jiān)控指定被測應用在使用過程中占用機器的CPU、內(nèi)存、流量資源的性能測試小工具。
支持SDK:Android2.2以及以上版本
Emmagee功能****介紹
1、檢測當前時間被測應用占用的CPU使用率以及總體CPU使用量
2、檢測當前時間被測應用占用的內(nèi)存量,以及占用的總體內(nèi)存百分比,剩余內(nèi)存量
3、檢測應用從啟動開始到當前時間消耗的流量數(shù)
4、測試數(shù)據(jù)寫入到CSV文件中,同時存儲在手機中
5、可以選擇開啟浮窗功能,浮窗中實時顯示被測應用占用性能數(shù)據(jù)信息
6、在浮窗中可以快速啟動或者關閉手機的wifi網(wǎng)絡
https://github.com/NetEase/Emmagee
4.基于udp的請求復制工具 udpcopy
udpcopy用來解決udp應用的一個開源軟件,與tcpcopy同屬于xcopy系列,可以導入udp流量到測試系統(tǒng)中去,這樣就可以有效地對系統(tǒng)進行各種測試,比如壓力測試,冒煙測試等等。
https://github.com/wangbin579/udpcopy
5.實時編輯刷新的前端服務器 Puer (推薦:browser-sync https://github.com/BrowserSync/browser-sync)
簡而言之,Puer是一個可以實時編輯刷新的前端服務器。特性一覽:
- 提供一個當前或指定路徑的靜態(tài)服務器
- 所有瀏覽器的實時刷新:編輯css實時更新(update)頁面樣式,其它文件則重載(reload)頁面
- 提供簡單熟悉的mock請求的配置功能,并且配置也是自動更新。
- 可用作代理服務器,調(diào)試開發(fā)既有服務器的頁面,可與mock功能配合使用
- 集成了weinre,并提供二維碼地址,方便移動端的調(diào)試
- 可以作為connect中間件使用(前提是后端為nodejs,否則請使用代理模式)
--------------------------阿里巴巴開源的好軟件太多,請自行選擇所需,我列幾個我們用的-------------------------
阿里巴巴 Alibaba https://github.com/alibaba/ https://github.com/thx

1.分布式key/value存儲系統(tǒng) Tair
Tair是由淘寶網(wǎng)自主開發(fā)的Key/Value結構數(shù)據(jù)存儲系統(tǒng),在淘寶網(wǎng)有著大規(guī)模的應用。您在登錄淘寶、查看商品詳情頁面或者在淘江湖和好友“搗漿糊”的時候,都在直接或間接地和Tair交互。Tair是一個Key/Value結構數(shù)據(jù)的解決方案,它默認支持基于內(nèi)存和文件的兩種存儲方式,分別和我們通常所說的緩存和持久化存儲對應。
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)服務的分布式文件系統(tǒng),其設計目標是支持海量的非結構化數(shù)據(jù)。
目前,國內(nèi)自主研發(fā)的文件系統(tǒng)可謂鳳毛麟角。淘寶在這一領域做了有效的探索和實踐,Taobao File System(TFS)作為淘寶內(nèi)部使用的分布式文件系統(tǒng),針對海量小文件的隨機讀寫訪問性能做了特殊優(yōu)化,承載著淘寶主站所有圖片、商品描述等數(shù)據(jù)存儲。
https://github.com/alibaba/tfs
3.消息中間件 RocketMQ
imagehttps://github.com/alibaba/RocketMQ
https://github.com/alibaba/RocketMQ-docs
4.****分布式計算系統(tǒng) JStorm
Jstorm是參考storm的實時流式計算框架,在網(wǎng)絡IO、線程模型、資源調(diào)度、可用性及穩(wěn)定性上做了持續(xù)改進,已被越來越多企業(yè)使用
https://github.com/alibaba/jstorm
5.淘寶Web服務器 Tengine
Tengine是由淘寶網(wǎng)發(fā)起的Web服務器項目。它在Nginx的基礎上,針對大訪問量網(wǎng)站的需求,添加了很多高級功能和特性。Tengine的性能和穩(wěn)定性已經(jīng)在大型的網(wǎng)站如淘寶網(wǎng),天貓商城等得到了很好的檢驗。它的最終目標是打造一個高效、穩(wěn)定、安全、易用的Web平臺。
以下沿引項目主頁上的特性介紹:
- 繼承Nginx-1.2.8的所有特性,100%兼容Nginx的配置;
- 動態(tài)模塊加載(DSO)支持。加入一個模塊不再需要重新編譯整個Tengine;
- 更多負載均衡算法支持。如會話保持,一致性hash等;
- 輸入過濾器機制支持。通過使用這種機制Web應用防火墻的編寫更為方便;
- 動態(tài)腳本語言Lua支持。擴展功能非常高效簡單;
- 支持管道(pipe)和syslog(本地和遠端)形式的日志以及日志抽樣;
- 組合多個CSS、JavaScript文件的訪問請求變成一個請求;
- 可以對后端的服務器進行主動健康檢查,根據(jù)服務器狀態(tài)自動上線下線;
- 自動根據(jù)CPU數(shù)目設置進程個數(shù)和綁定CPU親緣性;
- 監(jiān)控系統(tǒng)的負載和資源占用從而對系統(tǒng)進行保護;
- 顯示對運維人員更友好的出錯信息,便于定位出錯機器;
- 更強大的防攻擊(訪問速度限制)模塊;
- 更方便的命令行參數(shù),如列出編譯的模塊列表、支持的指令等;
- 可以根據(jù)訪問文件類型設置過期時間;
https://github.com/alibaba/tengine
6.****SeaJS 模塊加載框架
Sea.JS 是一個遵循 CommonJS 規(guī)范的模塊加載框架,可用來輕松愉悅地加載任意 JavaScript 模塊。SeaJS 支持的標準模塊遵循 Modules/Wrappings 規(guī)范的 define 形式,可運行于 Web 瀏覽器以及 node.JS 等環(huán)境中。
https://github.com/seajs/seajs
7.阿里巴巴分布式數(shù)據(jù)庫同步系統(tǒng) otter
otter 基于數(shù)據(jù)庫增量日志解析,準實時同步到本機房或異地機房的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 查詢商家被授權品牌列表和類目列表
- taobao.itemcats.get 獲取后臺供賣家發(fā)布商品的標準商品類目
- taobao.itemcats.increment.get 增量獲取后臺類目數(shù)據(jù)
- taobao.itemprops.get 獲取標準商品類目屬性
- taobao.itempropvalues.get 獲取標準類目屬性值
- taobao.topats.itemcats.get 全量獲取后臺類目數(shù)據(jù)
- Shop
- taobao.shop.get (白名單用戶才能調(diào)用)
9.模擬數(shù)據(jù)生成器 Mock.js
Mock.js 是一款模擬數(shù)據(jù)生成器,旨在幫助前端攻城師獨立于后端進行開發(fā),幫助編寫單元測試。提供了以下模擬功能:
- 根據(jù)數(shù)據(jù)模板生成模擬數(shù)據(jù)
- 模擬 Ajax 請求,生成并返回模擬數(shù)據(jù)
- 基于 HTML 模板生成模擬數(shù)據(jù)
https://github.com/nuysoft/Mock
10.服務框架 Dubbo
Dubbo 是阿里巴巴公司開源的一個高性能優(yōu)秀的服務框架,使得應用可通過高性能的 RPC 實現(xiàn)服務的輸出和輸入功能,可以和 Spring框架無縫集成。
主要核心部件:
- Remoting: 網(wǎng)絡通信框架,實現(xiàn)了 sync-over-async 和 request-response 消息機制.
- RPC: 一個遠程過程調(diào)用的抽象,支持負載均衡、容災和集群功能
- Registry: 服務目錄框架用于服務的注冊和服務事件發(fā)布和訂閱
https://github.com/alibaba/dubbo
11.****接口文檔管理工具 RAP
RAP通過GUI工具幫助WEB工程師更高效的管理接口文檔,同時通過分析接口結構自動生成Mock數(shù)據(jù)、校驗真實接口的正確性,使接口文檔成為開發(fā)流程中的強依賴。有了結構化的API數(shù)據(jù),RAP可以做的更多,而我們可以避免更多重復勞動。
Nginx7天入門:https://github.com/taobao/nginx-book
----------------------------------------------------------------------------------------------------------------
其他項目:
1.去哪兒:
MySQL自動化運維工具 Inception
MySQL語句的審核,在業(yè)界都已經(jīng)基本被認同了,實際上也是對MySQL語句寫法的統(tǒng)一化,標準化,而之前的人工審核,針對標準這個問題其實是很 吃力的,標準越多,DBA越累,開發(fā)也越累。 那么在這個都追求自動化運維的時代,審核也必須要跟上步伐,因此Inception誕生了。而Inception可以做的工作遠不止是一個自動化審核工 具,同時還具備執(zhí)行,生成對影響數(shù)據(jù)的回滾語句(類似閃回的功能),這樣一條龍服務的工具,將會給DBA的工作帶來翻天覆地的變化,DBA從此就從繁重的 審核、登上去執(zhí)行,出錯了很難回滾(如果提前沒有備份的話)的被動局面解放了出來,突然發(fā)現(xiàn),做DBA原來可以這么輕松,工作可以不飽和了,那就有更多的 自由時間學習、進一步向自動化運維平臺的實現(xiàn)等更智能化的方向去發(fā)展,是具有里程碑意義的。
https://github.com/mysql-inception/inception
實時應用監(jiān)控平臺 CAT
CAT 由大眾點評開發(fā)的,基于 Java 的實時應用監(jiān)控平臺,包括實時應用監(jiān)控,業(yè)務監(jiān)控。
CAT 支持的監(jiān)控消息類型包括:
- Transaction 適合記錄跨越系統(tǒng)邊界的程序訪問行為,比如遠程調(diào)用,數(shù)據(jù)庫調(diào)用,也適合執(zhí)行時間較長的業(yè)務邏輯監(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)負載等。
- Metric 用于記錄業(yè)務指標、指標可能包含對一個指標記錄次數(shù)、記錄平均值、記錄總和,業(yè)務指標最低統(tǒng)計粒度為1分鐘。
- Trace 用于記錄基本的trace信息,類似于log4j的info信息,這些信息僅用于查看一些相關信息
消息樹
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ù)庫團隊開發(fā)維護的一個基于MySQL協(xié)議的數(shù)據(jù)中間層項目。它在MySQL官方推出的MySQL-Proxy 0.8.3版本的基礎上, 修改了大量bug,添加了很多功能特性?,F(xiàn)在已經(jīng)在sohu的多個業(yè)務線上使用
DBProxy 主要功能:
1 即使在同一個連接(只要不在同一個事務中)也能連接復用
2 負載均衡提高讀性能,支持動態(tài)擴展
3 動態(tài)添加的SQL審核和過濾。能夠統(tǒng)計的SQL長時間運行影響性能,并且阻止其運行
4 用戶連接限制
5 自動摘除宕機的DB
6 讀寫分離(當前版本沒有,代碼和測試已經(jīng)完成,沒有合并到當前版本)
大眾點評:https://github.com/dianping
