日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

国内大公司的开源项目一览表(包含mysql读写分离等)

發布時間:2023/12/10 数据库 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 国内大公司的开源项目一览表(包含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平臺部基礎架構團隊開發維護的一個基于MySQL協議的數據中間層項目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基礎上,修改了大量bug,添加了很多功能特性。目前該項目在360公司內部得到了廣泛應用,很多MySQL業務已經接入了Atlas平臺,每天承載的讀寫請求數達幾十億條。

主要功能:
* 讀寫分離
* 從庫負載均衡
* IP過濾
* SQL語句黑白名單
* 自動分表

更多內容:https://github.com/Qihoo360/Atlas

?

2.360黑科技=》DroidPlugin?

DroidPlugin 是360手機助手在 Android 系統上實現了一種新的插件機制:它可以在無需安裝、修改的情況下運行APK文件,此機制對改進大型APP的架構,實現多團隊協作開發具有一定的好處。

特點:

  • 支持Androd 2.3以上系統

  • 插件APK完全不需做任何修改,可以獨立安裝運行、也可以做插件運行。要以插件模式運行某個APK,你無需重新編譯、無需知道其源碼。

  • 插件的四大組件完全不需要在Host程序中注冊,支持Service、Activity、BroadcastReceiver、ContentProvider四大組件

  • 插件之間、Host程序與插件之間會互相認為對方已經"安裝"在系統上了。

  • API低侵入性:極少的API。HOST程序只是需要一行代碼即可集成Droid Plugin

  • 超強隔離:插件之間、插件與Host之間完全的代碼級別的隔離:不能互相調用對方的代碼。通訊只能使用Android系統級別的通訊方法。

  • 支持所有系統API

  • 資源完全隔離:插件之間、與Host之間實現了資源完全隔離,不會出現資源竄用的情況。

  • 實現了進程管理,插件的空進程會被及時回收,占用內存低。

  • 插件的靜態廣播會被當作動態處理,如果插件沒有運行(即沒有插件進程運行),其靜態廣播也永遠不回被觸發。

  • 更多查看:https://github.com/Qihoo360/DroidPlugin/

    ?

    3.高性能分布式存儲服務 HustStore

    huststore 是一個高性能的分布式存儲服務,不但提供了?10w QPS?級別的 kv 存儲的功能,還提供了 hash、set 等一系列數據結構的支持,并且支持?二進制?的 kv 存儲,可以完全取代 Redis 的功能。此外,huststore 還結合特有的 HA 模塊實現了分布式消息隊列的功能,包括消息的流式推送,以及消息的 發布-訂閱 等功能,可以完全取代 RabbitMQ 的功能。

    特性

    huststore 分為 hustdb 以及 HA 模塊兩大部分。hustdb (存儲引擎)的底層設計采用了自主開發的 fastdb,通過一套獨特的 md5 db 將QPS 提升至 10w 級別的水準(含網絡層的開銷)。HA 以 nginx 模塊的方式開發。nginx 是工業級的 http server 標準,得益于此,huststore 具備以下特性:

      • 高吞吐量
        hustdb 的網絡層采用了開源的?libevhtp?來實現,結合自主研發的高性能 fastdb 存儲引擎,性能測試 QPS 在?10w?以上。

      • 高并發
        參考 nginx 的并發能力。

      • 高可用性
        huststore 整體架構支持 Replication (master-master),支持 load balance 。
        HA 的可用性由nginx 的 master-worker 架構所保證。當某一個 worker 意外掛掉時, master 會自動再啟動一個 worker 進程,而且多個 worker 之間是相互獨立的,從而保證了 HA 的高可用性。
        huststore 的高可用性由其整體架構特點保證。由于 hustdb 的存儲節點采用了 master-master 的結構,當某一個存儲節點掛掉時,HA 會自動將請求打到另外一臺 master,同時 HA 會按照自動進行負載均衡,將數據分布存儲在多個 hustdb節點上,因此存儲引擎不存在單點限制。
        同時 HA 集群本身也是分布式的設計,而且每個 HA 節點都是獨立的,當某一臺 HA 掛掉時, LVS 會自動將請求打到其他可用的 HA 節點,從而解決了 HA 得單點限制。

      • 通用性的接口
        huststore 使用 http 作為通用協議,因此客戶端的實現不限制于語言。

      • 支持二進制的 key-value

    更多查看:https://github.com/Qihoo360/huststore

    ?

    4.分布式配置管理工具 QConf

    QConf 是奇虎 360 內部分布式配置管理工具。用來替代傳統的配置文件,使得配置信息和程序代碼分離,同時配置變化能夠實時同步到客戶端,而且保證用戶高效讀取配置,這使的工程師從瑣碎的配置修改、代碼提交、配置上線流程中解放出來,極大地簡化了配置管理工作。

    特點

    • 一處修改,所有機器實時同步更新

    • 高效讀取配置

    • 安裝部署方便,使用簡單

    • 服務器宕機、網絡中斷、集群遷移等異常情況對用戶透明

    • 支持c/c 、shell、php、python、lua 等語言

    更多查看:https://github.com/Qihoo360/QConf

    ?

    5.開源類Redis存儲系統?Pika

    Pika 是 360 DBA 和基礎架構組聯合開發的類 Redis 存儲系統,完全支持 Redis 協議,用戶不需要修改任何代碼,就可以將服務遷移至 Pika。有維護 Redis 經驗的 DBA 維護 Pika 不需要學習成本。

    Pika 主要解決的是用戶使用 Redis 的內存大小超過 50G、80G 等等這樣的情況,會遇到啟動恢復時間長,一主多從代價大,硬件成本貴,緩沖區容易寫滿等問題。Pika 就是針對這些場景的一個解決方案。

    特點

    • 容量大,支持百G數據量的存儲

    • 兼容redis,不用修改代碼即可平滑從redis遷移到pika

    • 支持主從(slaveof)

    • 完善的運維命令

    更多內容:https://github.com/Qihoo360/pika

    ?

    6.對象緩存服務器 kmemcache

    分布式linux內核內存對象緩存服務器,實現基于memcached?v1.4.15,基本兼容memcached的所有操作。經初步測試,內存數據操作比memcached快1倍,網絡并發量比memcached的也大許多,目前處于alpha版本。

    優點:由于在內核的socket層實現,所有處理網絡事件性能比epoll機制快,另外無需內存由用戶空間到內核空間的拷貝。

    缺點:不建議在32bits下使用。

    更多內容:?https://github.com/Qihoo360/kmemcache

    ?

    7.ngx_http_subrange_module

    當Nginx作為文件下載服務的反向代理,用戶請求一個非常大的文件的時候,它會一直占滿反向代理服務器與后端主機之間的帶寬。因為nginx一次獲取整個文件,緩沖獲取到的文件,導致客戶端不能馬上讀取到。帶寬使用和iowait會很高。

    ngx_http_subrange_module就是為了解決這個問題,它能分割HTTP requests。將大數據量的HTTP請求切分為多個子請求,當下載一個1 G的文件,subrange將從后端主機中下載文件塊,比如先獲取5 M,然后再獲取5 M,直到客戶端下載完整個文件。

    更多查看:https://github.com/Qihoo360/ngx_http_subrange_module

    ?

    8.同步到異步的類庫 Mario

    Mario是一個讓編寫從同步到異步的類庫,它的線程安全較大,易于使用。Mario 的最基本的想法就是為了減少人員的安排,降低成本和時間投入。但是有了這個類庫,操作人員就可以抽出精力做別的事情了。所以 Mario 類庫能夠很輕易的解決你的問題,你只需要你自己的消息功能。

    引擎類型:

    • memory,這種類型就是將數據緩沖存儲器留在內存里。

    • file,這種類型就是能夠在本地日志路徑里創建做出一個?write2file。

    更多查看:https://github.com/Qihoo360/Mario

    ?

    其他系列請去360github庫觀看




    百度 Baidu?https://github.com/fex-team/

    https://github.com/ecomfe

    ?

    1.UEditor 編輯器

    UEditor是由百度web前端研發部開發所見即所得富文本web編輯器,具有輕量,可定制,注重用戶體驗等特點。

    主要特點:

    輕量級:代碼精簡,加載迅速。

    定制化:
    全新的分層理念,滿足多元化的需求。
    采用三層架構:
    1. 核心層: 為命令層提供底層API,如range/selection/domUtils類。
    2. 命令插件層: 基于核心層開發command命令,命令之間相互獨立。
    3. 界面層: 為命令層提供用戶使用界面。
    滿足不同層次用戶的需求。

    https://github.com/fex-team/ueditor

    https://github.com/fex-team/umeditor

    ?

    2.ECharts 圖表庫

    ECharts開源來自百度商業前端數據可視化團隊,基于html5 Canvas,是一個純Javascript圖表庫,提供直觀,生動,可交互,可個性化定制的數據可視化圖表。創新的拖拽重計算、數據視圖、值域漫游等特性大大增強了用戶體驗,賦予了用戶對數據進行挖掘、整合的能力。提供商業產品常用圖表,底層基于ZRender(一個全新的輕量級canvas類庫),創建了坐標系,圖例,提示,工具箱等基礎組件,并在此上構建出折線圖(區域圖)、柱狀圖(條狀圖)、散點圖(氣泡圖)、餅圖(環形圖)、K線圖、地圖、力導向布局圖以及和弦圖,同時支持任意維度的堆積和多圖表混合展現。

    更多: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)團隊開發的一個簡單的以HTML5為主,FLASH為輔的現代文件上傳組件。在現代的瀏覽器里面能充分發揮HTML5的優勢,同時又不摒棄主流IE瀏覽器,延用原來的FLASH運行時,兼容IE6 ,Andorid 4 ,IOS 6 。兩套運行時,同樣的調用方式,可供用戶任意選用。采用大文件分片并發上傳,極大的提高了文件上傳效率。

    https://github.com/fex-team/webuploader

    ?

    4.百度腦圖?KityMinder

    KityMinder 是百度FEX團隊的f-cube小組(原UEditor小組)的又一力作。作為一款在線的腦圖編輯工具,它有著很多Native編輯工具的交互體驗。KM與UE有著一樣的宗旨,就是注重最終用戶的使用體驗。同時,它充分發揮了Web云存儲的優勢,可以直接將編輯中的腦圖同步到云端。此外,借由獨創的 “云盤分享”功能,用戶可以一鍵將當前編輯的腦圖直接生成在線鏈接共享給其他用戶,實現無縫溝通。
    KM是基于SVG技術實現,使用JavaScript html實現。支持絕大多數的主流瀏覽器。
    支持列表如下
    1. chrome
    2. firefox
    3. safari
    4. ie9-11

    https://github.com/fex-team/kityminder

    ?

    5.人工智能系統 WARP-CTC

    WARP-CTC 基于 CTC 方法,當前可用的一些 CTC 實現通常要求大量的內存或者是慢十到幾百倍。

    百度研究所首席科學家 Andrew Ng 稱他的研究主要是人工神經網絡如何在圖形處理單元 (GPUs) 上運行,讓 WARP-CTC 實現對 GPUs 和 x86 CPUs 的支持。

    connectionist temporal classification (CTC) 方法可以追溯到 2006 年,在 Swiss AI 研究所 IDSIA 論文上有記錄。 百度研究所開發的 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 開發量身設計,可以令用戶的使用感知更加統一。包含button、cell、dialog、?progress、?toast、articleactionsheet、icon等各式元素。

    https://github.com/weui/weui

    ?

    2.手機前端開發調試利器 vConsole

    我們在開發手機版網頁的時候,常常會出現下面的情景:

    ?(1) 開發時,在自己電腦上運行得好好的,在手機上打開就掛了,但是手機上又看不到error log;?

    ?(2) 上線后,某用戶表示頁面失靈,但我們自己又重現不出來,看不到用戶側的出錯信息。

    如果說(1)還可以通過電腦連接手機以查看log來解決,那(2)在沒有完善的前端上報體系時就非常被動了。

    作為開發者,我們的訴求很簡單:有沒有快捷的方法在手機前端頁面看到log日志?vConsole就這樣出現了!

    https://github.com/WechatFE/vConsole

    ?

    3.專業級Web圖像處理引擎 AlloyImage

    AlloyImage是一個使用Javascript語言開發的,基于Web的在線圖像處理引擎,除了核心底層圖像處理引擎,還同時集成了一些方便快捷的圖像處理API,您可以將它簡單快捷的引用到您的Web網頁中,做出與PhotoShop一樣的優美效果。甚至,你可以用AlloyImage來開發一個Web在線圖像處理軟件。

    https://github.com/AlloyTeam/AlloyImage

    https://github.com/AlloyTeam/AlloyPhoto?

    ?

    4.?GoPng?圖片合并并生成CSS

    Css Sprite,有時也稱為雪碧圖、精靈圖,是每一個前端開都會遇到的問題,也是常見的小圖片加載優化手段。?

    在線版本:https://alloyteam.github.io/gopng/

    源碼地址:https://github.com/AlloyTeam/gopng

    合成分解:https://github.com/luyongfugx/hcSpriteCuter?(一個由多張小圖合并而成的雪碧圖中摳出其中一張或者幾張圖片)

    ?

    5.可視化Web構建工具 AlloyDesigner

    AlloyDesigner 是一款致力于提高前端生產效率的瀏覽器內運行工具,AlloyDesigner Chrome F12(Especially with WorkSpace) ?打造前端新的開發和測試模式

    https://github.com/AlloyTeam/AlloyDesigner

    ?

    6.Koala跨平臺圖形編譯工具

    Koala是一款預處理器語言圖形編譯工具,支持Less、Sass、CoffeeScript、Compass framework?的即時編譯。 無需手動輸入命令去編譯,后臺監聽文件是否有改變,如有修改會自動進行編譯。能夠大大提升?Web?開發中的工作效率。

    功能特性

    • 多語言支持?支持Less、Sass、CoffeeScript 和 Compass Framework。

    • 實時編譯?監聽文件,當文件改變時自動執行編譯,這一切都在后臺運行,無需人工操作。

    • 編譯選項?可以設置各個語言的編譯選項。

    • 項目配置?支持為項目創建一個全局配置,為文件設置統一編譯選項。

    • 錯誤提示?在編譯時如果遇到語法的錯誤,koala將在右下角彈出錯誤信息,方便開發者定位代碼錯誤位置。

    • 跨平臺?Windows、Linux、Mac都能完美運行。

    系統支持及要求

    Koala支持跨平臺運行,完美兼容Windows、Linux與Mac 。
    Linux系統下需安裝好ruby運行環境, e.g.?
    $ sudo apt-get install ruby.

    https://github.com/oklai/koala

    ?

    7.輕量級 CSS3 動畫庫 JX.Animate

    JX.Animate 是一個開源的輕量級的CSS3動畫庫。動畫可以使用標準的CSS3關鍵幀動畫(KeyFrame)制作,也可以使用JavaScript制作,而且還可以支持在JavaScript中動態生成動畫關鍵幀。

    https://github.com/AlloyTeam/JXAnimate

    ?

    8.Fanvas swf轉為html5 canvas

    Fanvas是一個把swf轉為html5 canvas動畫的系統,由兩部分組成:Actionscript實現的解析器、js運行庫。Flash做動畫是最成熟最高效的方式,但由于終端基本不支持Flash播放,這給終端的動畫制作帶來了不少麻煩。Fanvas是Flash和Canvas的完美結合,可以把swf(包括矢量和位圖)完美地轉化為canvas動畫.

    https://github.com/TencentOpen/Fanvas

    ?

    9.隨身調測平臺 GT

    GT(隨身調)是APP的隨身調測平臺,它是直接運行在手機上的“集成調測環境”(IDTE, Integrated Debug Environment)。利用GT,僅憑一部手機,無需連接電腦,您即可對APP進行快速的性能測試(CPU、內存、流量、電量、幀率/流暢度等等)、 開發日志的查看、Crash日志查看、網絡數據包的抓取、APP內部參數的調試、真機代碼耗時統計等。如果您覺得GT提供的功能還不夠滿足您的需要,您還 可以利用GT提供的基礎API自行開發有特殊功能的GT插件,幫助您解決更加復雜的APP調試問題。

    https://github.com/TencentOpen/GT

    ?

    10.Frozen UI?移動端UI框架

    Frozen UI是一個開源的簡單易用,輕量快捷的移動端UI框架?;谑諵樣式規范,選取最常用的組件,做成手Q公用離線包減少請求,升級方式友好,文檔完善,目前全面應用在騰訊手Q增值業務中。

    https://github.com/frozenui/frozenui

    ?

    11.LivePool??Web 開發調試工具

    LivePool 是一個基于 NodeJS,類似 Fiddler 支持抓包和本地替換的 Web 開發調試工具,是 Tencent AlloyTeam 在開發實踐過程總結出的一套的便捷的 WorkFlow 以及調試方案。

    特性

    • 基于 NodeJS, 跨平臺

    • 支持 http 抓包和本地替換調試,Https/WebSockets 直接代理轉發(暫不支持本地替換)

    • 便捷的 UI 管理界面,跟 Fiddler 類似,降低學習成本

    • 可以脫離 UI 后臺運行,適應于某些不需要抓包,只需要使用替換和簡單路由的場景

    • 基于項目的替換規則管理,方便高效,規則支持拖曳排序

    • 支持基于請求路徑的本地文件替換,支持基于請求路徑的路由轉發(host 配置)

    • 替換類型支持:文件/文件夾替換,combo合并替換,qzmin替換(批量combo),delay延時等

    • 支持自動設置系統代理

    • 支持規則過濾,只顯示關注的請求

    • 提供構建 http get/post 請求界面,方便接口調試

    • 特色功能:模擬gprs/3g等低網速(mac only)

    • 特色功能:支持離線站點到本地,并自動代碼格式化

    https://github.com/rehorn/livepool

    ?

    12.KNVProtoEngine?高性能樹型協議處理引擎

    KNV是一個模式自由的高性能樹型協議處理引擎,是對Key-Value的一個通用結構化擴展。

    應用特性

    正如NoSQL對SQL的徹底變革一樣,KNV是對Key-Value的徹底變革!
    大家都很熟悉Key-Value系統,但KV操作極不方便:
    -- 你不得不自己做樂觀鎖(讀返回seq->修改->帶seq寫->seq變化則重頭開始);
    -- 你不得不拉取一堆數據,然后再提取你想要的部分;
    -- 為了修改一個bit,你不得不把一串數據拉取修改后再一起提交更新
    不過現在有KNV,一切都解決了。KNV時代來了,你還在猶豫嗎?

    應用場景

    KNV是專門針對以Protocol Buffers(或類似樹型結構)存儲的存儲系統開發的,有3個應用場景:

  • 存儲系統?處理用戶請求的通用解決方法(Get/Set/Delete),可以適配任意用戶自定義的數據結構。

  • 代理/通用邏輯層?服務器處理Protocol Buffers協議的通用方法 – 比如通用Proxy,透傳多個協議, 對請求包進行鑒權、限頻、統計等等操作,還支持對包體內容進行審計,使用KNV協議, 這種方法就有可能而且很簡單。

  • 原生態?Protocol Buffers打解包庫?的高性能代替品。

  • https://github.com/TencentOpen/KNVProtoEngine

    ?

    13.Behaviac 游戲AI的開發框架組件

    Behaviac是游戲AI的開發框架組件,也是游戲原型的快速設計工具。支持行為樹BT,狀態機FSM,HTN等多種范式,方便的編輯和調試。支持全平臺,適用于客戶端和服務器,助力游戲快速迭代開發。編輯器可以運行在PC上,操作方便直觀可靠,支持實時和離線調試;編輯器可以導出xml,bson等多種格式,更可以導出C ,C#源碼,提供最高效率。運行時支持全平臺,有C 和C#兩個版本,原生支持Unity。

    已被《天天炫斗》、《QQ飛車》、《全民突擊》、《全民奪寶》、《九龍戰》等游戲及其他更多預研項目使用。

    https://github.com/TencentOpen/behaviac

    ?

    14.現代構建系統 Typhoon Blade

    Blade主要定位于linux下的大型C 項目,密切配合研發流程,比如單元測試,持續集成,覆蓋率統計等。但像unix下的文本過濾程序一 樣,保持相對的獨立性,可以單獨運行。目前重點支持i386/x86_64 Linux,未來可以考慮支持其他的類Unix系統。

    特點:

    • 自動分析頭文件依賴關系,構建受影響的代碼。

    • 增量編譯和鏈接,只構建因變更受影響而需要構建的。

    • 自動計算庫的間接依賴,庫的作者只需要寫出直接依賴,構建時自動檢查所依賴的庫是否需要重新構建。

    • 在任意代碼樹的任意子目錄下都能構建。

    • 支持一次遞歸構建多個目錄下的所有目標,也支持只構建任意的特定的目標。

    • 無論構建什么目標,這些目標所依賴的目標也會被自動連坐更新。

    • 內置 debug/release 兩種構建類型。

    • 彩色高亮構建過程中的錯誤信息。

    • 支持?ccache

    • 支持?distcc

    • 支持基于構建多平臺目標

    • 支持構建時選擇編譯器(不同版本的gcc,clang等)

    • 支持編譯?protobuf,lex,?yacc,?swig

    • 支持自定義規則

    • 支持測試,在命令行跑多個測試

    • 支持并行測試(多個測試進程并發運行)

    • 支持增量測試(無需重新運行的測試程序自動跳過)

    • 集成?gperftools,自動檢測測試程序的內存泄露

    • 構建腳本 vim 語法高亮

    • svn 式的子命令命令行接口。

    • 支持 bash 命令行補全

    • 用 Python 編寫,無需編譯,直接安裝使用。

    徹底避免以下問題:

    • 頭文件更新,受影響的模塊沒有重新構建。

    • 被依賴的庫需要更新,而構建時沒有被更新,比如某子目錄依賴遙遠的某外部目錄的代碼,我在這個目錄構建,外部目錄的代碼會被自動檢查是否也需要重新構建。

    https://github.com/chen3feng/typhoon-blade

    ?

    15.RapidJSON?C 的JSON開發包

    Rapidjson 是一個 C 的快速 JSON 解析器和生成器,使用 SAX/DOM 風格的 API 設計。

    https://github.com/miloyip/rapidjson

    ?

    16.?微信開源PhxSQL

    PhxSQL是一個兼容MySQL、服務高可用、數據強一致的關系型數據庫集群。PhxSQL以單Master多Slave方式部署,在集群內超過一半機器存活的情況下,可自身實現自動Master切換,且保證數據一致性。

    https://github.com/tencent-wechat/phxsql

    ?

    ?更多請自行查看:http://alloyteam.github.io/?https://github.com/tencent-wechat




    新浪:WeiBo?https://github.com/weibocom

    1.分布式緩存服務器 memcachedb

    memcachedb是 一個由新浪網的開發人員開放出來的開源項目,給memcached分布式緩存服務器添加了Berkeley DB的持久化存儲機制和異步主輔復制機制,讓memcached具備了事務恢復能力、持久化能力和分布式復制能力,非常適合于需要超高性能讀寫速度,但是 不需要嚴格事務約束,能夠被持久化保存的應用場景,例如memcachedb被應用在新浪博客上面。

    https://github.com/stvchu/memcachedb


    2.動態流量管理方案 Upsync

    Upsync,微博開源基于Nginx容器動態流量管理方案 。Nginx 以其超高的性能與穩定性,在業界獲得了廣泛的使用,微博的七層就大量使用了 Nginx 。結合 Nginx 的健康檢查模塊,以及動態 reload 機制,可以近乎無損的服務的升級上線與擴容。這個時候擴容的頻次比較低,大多數情況下是有計劃的擴容。Upsync,開發了模塊 nginx-upsync-module,它的功能是拉取 consul 的后端 server 的列表,并更新 Nginx 的路由信息。此模塊不依賴于任何第三方模塊。consul 作為 Nginx 的 db,利用 consul 的 KV 服務,每個 Nginx work 進程獨立的去拉取各個 upstream 的配置,并更新各自的路由。

    https://github.com/weibocom/nginx-upsync-module


    3.高性能的內核 Socket 實現 Fastsocket

    Fastsocket 是一個高擴展性的 Socket 以及 Linux 內核的底層網絡實現??梢栽诙嗪藱C器上提供極好的性能,此外使用和維護還非常簡單。目前該項目已經在新浪的生產環境中使用。該項目由清華大學和新浪網聯合組成的 Fastos 團隊開發,該團隊的使命是提升 Linux 內核的效率。Fastsocket 目前已經使用在新浪微博的生產環境上,主要用于提供負載均衡服務的 HAProxy,線上實際性能提升一倍,從2014年3月份穩定運行至今,預計2014年底完成負載均衡全部集群的 Fastsocket 升級。Fastsocket 完全兼容 BSD Socket API,現有各類基于 Socket 的網絡應用可以直接使用 Fastsockt。?目前經過兼容測試的常用服務軟件有:HAProxy、Nginx、Lighttpd、Redis 和 Memcached。

    https://github.com/fastos/fastsocket


    4.輕量級 RPC 框架 Motan

    Motan 是一套高性能、易于使用的分布式遠程服務調用(RPC)框架。

    功能

    • 支持通過spring配置方式集成,無需額外編寫代碼即可為服務提供分布式調用能力。

    • 支持集成consul、zookeeper等配置服務組件,提供集群環境的服務發現及治理能力。

    • 支持動態自定義負載均衡、跨機房流量調整等高級服務調度能力。

    • 基于高并發、高負載場景進行優化,保障生產環境下RPC服務高可用。

    https://github.com/weibocom/motan


    5.TCP 性能剖析工具 Tcpdive

    Tcpdive 是 TCP 性能剖析工具,主要特性:

    • 更多 TCP 內部性能信息

    • 定量評估 TCP 性能改進

    • 描述在 TCP 層的 HTTP 處理,依賴于 HTTP Apps

    • 容易部署,使用友好

    Tcpdive 已經在新浪的生產環境上部署使用:

    • 提高微博圖片服務質量

    • 提高微博視頻服務質量

    • 在有線和無線網絡中比較 TCP 性能

    • 記錄不同應用的 TCP 流量

    https://github.com/fastos/tcpdive


    6.PHP框架 Yaf

    Yaf是一個C語言編寫的PHP框架,Yaf 的特點:

  • 用C語言開發的PHP框架, 相比原生的PHP, 幾乎不會帶來額外的性能開銷.

  • 所有的框架類, 不需要編譯, 在PHP啟動的時候加載, 并常駐內存.

  • 更短的內存周轉周期, 提高內存利用率, 降低內存占用率.

  • 靈巧的自動加載. 支持全局和局部兩種加載規則, 方便類庫共享.

  • 高性能的視圖引擎.

  • 高度靈活可擴展的框架, 支持自定義視圖引擎, 支持插件, 支持自定義路由等等.

  • 內建多種路由, 可以兼容目前常見的各種路由協議.

  • 強大而又高度靈活的配置文件支持. 并支持緩存配置文件, 避免復雜的配置結構帶來的性能損失.

  • 在框架本身,對危險的操作習慣做了禁止.

  • 更快的執行速度, 更少的內存占用.

  • https://github.com/laruence/yaf



    小米:XiaoMi?https://github.com/XiaoMi

    1.分布式的發布和監控系統 Minos

    Minos 是小米公司開發的一個分布式的發布和監控系統。最初是小米開發的用來在 Hadoop 和 ZooKeeper 集群上發布和管理的工具。Minos 可輕松擴展來支持其他的系統,目前已經支持包括 HDFS、YARN 和 Impala 。

    https://github.com/XiaoMi/minos

    ?

    2.互聯網企業級監控系統 OpenFalcon

    Open-Falcon 是小米運維部開源的一款互聯網企業級監控系統解決方案.

    監控系統是整個運維環節,乃至整個產品生命周期中最重要的一環,事前及時預警發現故障,事后提供翔實的數據用于追查定位問題。監控系統作為一個成熟的運維產品,業界有很多開源的實現可供選擇。當公司剛剛起步,業務規模較小,運維團隊也剛剛建立的初期,選擇一款開源的監控系統,是一個省時省力,效率最高的方案。之后,隨著業務規模的持續快速增長,監控的對象也越來越多,越來越復雜,監控系統的使用對象也從最初少數的幾個SRE,擴大為更多的DEVS,SRE。這時候,監控系統的容量和用戶的“使用效率”成了最為突出的問題。

    監控系統業界有很多杰出的開源監控系統。我們在早期,一直在用zabbix,不過隨著業務的快速發展,以及互聯網公司特有的一些需求,現有的開源的監控系統在性能、擴展性、和用戶的使用效率方面,已經無法支撐了。

    因此,我們在過去的一年里,從互聯網公司的一些需求出發,從各位SRE、SA、DEVS的使用經驗和反饋出發,結合業界的一些大的互聯網公司做監控,用監控的一些思考出發,設計開發了小米的監控系統:Open-Falcon。

    Highlights and features

    • 數據采集免配置:agent自發現、支持Plugin、主動推送模式

    • 容量水平擴展:生產環境每秒50萬次數據收集、告警、存儲、繪圖,可持續水平擴展。

    • 告警策略自發現:Web界面、支持策略模板、模板繼承和覆蓋、多種告警方式、支持回調動作。

    • 告警設置人性化:支持最大告警次數、告警級別設置、告警恢復通知、告警暫停、不同時段不同閾值、支持維護周期,支持告警合并。

    • 歷史數據高效查詢:秒級返回上百個指標一年的歷史數據。

    • Dashboard人性化:多維度的數據展示,用戶自定義Dashboard等功能。

    • 架構設計高可用:整個系統無核心單點,易運維,易部署。

    https://github.com/XiaoMi/open-falcon

    ?

    3.物聯網框架 IoT.js

    IoT.js 旨在為物聯網提供一個基于 Web 技術的可相互操作的服務平臺。IoT.js 的目標是要在資源受限的設備上良好運行,例如只有幾 KB 的 RAM。所以它支持廣泛的物聯。

    https://github.com/Samsung/iotjs




    豆瓣 DouBan?https://github.com/douban

    ?

    1.分布式計算框架 DPark

    DPark 是 Spark 的 Python 克隆,是一個Python實現的分布式計算框架,可以非常方便地實現大規模數據處理和迭代計算。 DPark 由豆瓣實現,目前豆瓣內部的絕大多數數據分析都使用DPark 完成,正日趨完善。

    https://github.com/douban/dpark

    ?

    2.iOS/Mac 音頻播放器 DOUAudioStreamer

    DOUAudioStreamer 是 iOS 和 Mac 的基于核心音頻的流媒體音頻播放器。

    https://github.com/douban/DOUAudioStreamer

    ?

    3.CODE 豆瓣代碼托管系統

    Douban CODE 是豆瓣開發的一個基于?git?版本控制系統的協作平臺。

    CODE —— C: Community O: Original D: Developer E: Eldamar

    目前 CODE 僅開放了一個框架,支持:

    • clone & push project

    • create project

    • create user

    準備環境

    • MySQL

    • Memcached

    • Python >= 2.7

    • pip >= 1.4.1

    • virtualenv

    • git

    https://github.com/douban/code

    ?




    網易 NetEase?https://github.com/netease

    ?

    1.分布式TCP壓力測試工具 tcpcopy

    tcpcopy是一種應用請求復制(基于tcp的packets)工具,其應用領域較廣,目前已經應用于國內各大互聯網公司。

    總體說來,tcpcopy主要有如下功能:

    1)分布式壓力測試工具,利用在線數據,可以測試系統能夠承受的壓力大小(遠比ab壓力測試工具真實地多),也可以提前發現一些bug
    2)普通上線測試,可以發現新系統是否穩定,提前發現上線過程中會出現的諸多問題,讓開發者有信心上線
    3)對比試驗,同樣請求,針對不同或不同版本程序,可以做性能對比等試驗
    4)利用多種手段,構造無限在線壓力,滿足中小網站壓力測試要求
    5)實戰演習(架構師必備)

    https://github.com/session-replay-tools/tcpcopy

    ?

    2.桌面應用軟件的跨平臺解決方案 heX

    heX 是網易有道搜索部門開發的一個允許你采用前端技術(HTML,CSS,JavaScript)開發桌面應用軟件的跨平臺解決方案,基于HTML5 ?node.js,類似appjs。是你開發桌面應用的一種新的選擇,意在解決傳統桌面應用開發中繁瑣的UI和交互開發工作,使其變的簡單而高效。特別適合重UI,重交互的桌面應用軟件。

    https://github.com/netease-youdao/hex

    https://github.com/netease-youdao/hex-samples

    ?

    3.Android性能測試工具 Emmagee

    Emmagee是監控指定被測應用在使用過程中占用機器的CPU、內存、流量資源的性能測試小工具。

    支持SDK:Android2.2以及以上版本

    Emmagee功能介紹

    1、檢測當前時間被測應用占用的CPU使用率以及總體CPU使用量

    2、檢測當前時間被測應用占用的內存量,以及占用的總體內存百分比,剩余內存量

    3、檢測應用從啟動開始到當前時間消耗的流量數

    4、測試數據寫入到CSV文件中,同時存儲在手機中

    5、可以選擇開啟浮窗功能,浮窗中實時顯示被測應用占用性能數據信息

    6、在浮窗中可以快速啟動或者關閉手機的wifi網絡

    https://github.com/NetEase/Emmagee

    ?

    4.基于udp的請求復制工具 udpcopy

    udpcopy用來解決udp應用的一個開源軟件,與tcpcopy同屬于xcopy系列,可以導入udp流量到測試系統中去,這樣就可以有效地對系統進行各種測試,比如壓力測試,冒煙測試等等。

    https://github.com/wangbin579/udpcopy

    ?

    5.實時編輯刷新的前端服務器 Puer?

    推薦:browser-sync?https://github.com/BrowserSync/browser-sync

    簡而言之,Puer是一個可以實時編輯刷新的前端服務器。特性一覽:

    • 提供一個當前或指定路徑的靜態服務器

    • 所有瀏覽器的實時刷新:編輯css實時更新(update)頁面樣式,其它文件則重載(reload)頁面

    • 提供簡單熟悉的mock請求的配置功能,并且配置也是自動更新。

    • 可用作代理服務器,調試開發既有服務器的頁面,可與mock功能配合使用

    • 集成了weinre,并提供二維碼地址,方便移動端的調試

    • 可以作為connect中間件使用(前提是后端為nodejs,否則請使用代理模式)

    https://github.com/leeluolee/puer





    阿里巴巴開源的好軟件太多,請自行選擇所需,我列幾個我們用的

    阿里巴巴?Alibaba?https://github.com/alibaba/?https://github.com/thx

    1.分布式key/value存儲系統 Tair

    Tair是由淘寶網自主開發的Key/Value結構數據存儲系統,在淘寶網有著大規模的應用。您在登錄淘寶、查看商品詳情頁面或者在淘江湖和好友“搗漿糊”的時候,都在直接或間接地和Tair交互。Tair是一個Key/Value結構數據的解決方案,它默認支持基于內存和文件的兩種存儲方式,分別和我們通常所說的緩存和持久化存儲對應。

    Tair除了普通Key/Value系統提供的功能,比如get、put、delete以及批量接口外,還有一些附加的實用功能,使得其有更廣的適用場景,包括:

    • Version支持

    • 原子計數器

    • Item支持

    https://github.com/alibaba/tair

    ?

    2.TFS?分布式文件系統

    TFS(Taobao FileSystem)是一個高可擴展、高可用、高性能、面向互聯網服務的分布式文件系統,其設計目標是支持海量的非結構化數據。

    目前,國內自主研發的文件系統可謂鳳毛麟角。淘寶在這一領域做了有效的探索和實踐,Taobao File System(TFS)作為淘寶內部使用的分布式文件系統,針對海量小文件的隨機讀寫訪問性能做了特殊優化,承載著淘寶主站所有圖片、商品描述等數據存儲。

    https://github.com/alibaba/tfs

    ?

    3.消息中間件 RocketMQ

    https://github.com/alibaba/RocketMQ

    https://github.com/alibaba/RocketMQ-docs

    ?

    4.分布式計算系統?JStorm

    ?Jstorm是參考storm的實時流式計算框架,在網絡IO、線程模型、資源調度、可用性及穩定性上做了持續改進,已被越來越多企業使用

    https://github.com/alibaba/jstorm

    ?

    5.淘寶Web服務器 Tengine

    Tengine是由淘寶網發起的Web服務器項目。它在Nginx的基礎上,針對大訪問量網站的需求,添加了很多高級功能和特性。Tengine的性能和穩定性已經在大型的網站如淘寶網,天貓商城等得到了很好的檢驗。它的最終目標是打造一個高效、穩定、安全、易用的Web平臺。

    ?

    以下沿引項目主頁上的特性介紹:

    ?

    • 繼承Nginx-1.2.8的所有特性,100%兼容Nginx的配置;

    • 動態模塊加載(DSO)支持。加入一個模塊不再需要重新編譯整個Tengine;

    • 更多負載均衡算法支持。如會話保持,一致性hash等;

    • 輸入過濾器機制支持。通過使用這種機制Web應用防火墻的編寫更為方便;

    • 動態腳本語言Lua支持。擴展功能非常高效簡單;

    • 支持管道(pipe)和syslog(本地和遠端)形式的日志以及日志抽樣;

    • 組合多個CSS、JavaScript文件的訪問請求變成一個請求;

    • 可以對后端的服務器進行主動健康檢查,根據服務器狀態自動上線下線;

    • 自動根據CPU數目設置進程個數和綁定CPU親緣性;

    • 監控系統的負載和資源占用從而對系統進行保護;

    • 顯示對運維人員更友好的出錯信息,便于定位出錯機器;

    • 更強大的防攻擊(訪問速度限制)模塊;

    • 更方便的命令行參數,如列出編譯的模塊列表、支持的指令等;

    • 可以根據訪問文件類型設置過期時間;

    https://github.com/alibaba/tengine

    ??

    6.SeaJS 模塊加載框架

    Sea.JS 是一個遵循?CommonJS?規范的模塊加載框架,可用來輕松愉悅地加載任意 JavaScript 模塊。SeaJS 支持的標準模塊遵循 Modules/Wrappings 規范的 define 形式,可運行于 Web 瀏覽器以及 node.JS 等環境中。

    https://github.com/seajs/seajs

    ?

    7.阿里巴巴分布式數據庫同步系統 otter

    otter 基于數據庫增量日志解析,準實時同步到本機房或異地機房的mysql/oracle數據庫. 一個分布式數據庫同步系統。

    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 獲取后臺供賣家發布商品的標準商品類目

      • taobao.itemcats.increment.get 增量獲取后臺類目數據

      • taobao.itemprops.get 獲取標準商品類目屬性

      • taobao.itempropvalues.get 獲取標準類目屬性值

      • taobao.topats.itemcats.get 全量獲取后臺類目數據

    • Shop

      • taobao.shop.get (白名單用戶才能調用)

    9.模擬數據生成器 Mock.js

    Mock.js 是一款模擬數據生成器,旨在幫助前端攻城師獨立于后端進行開發,幫助編寫單元測試。提供了以下模擬功能:

    • 根據數據模板生成模擬數據

    • 模擬 Ajax 請求,生成并返回模擬數據

    • 基于 HTML 模板生成模擬數據

    https://github.com/nuysoft/Mock

    ?

    10.服務框架?Dubbo

    Dubbo 是阿里巴巴公司開源的一個高性能優秀的服務框架,使得應用可通過高性能的 RPC 實現服務的輸出和輸入功能,可以和?Spring框架無縫集成。

    主要核心部件:

    • Remoting:?網絡通信框架,實現了 sync-over-async 和 request-response 消息機制.

    • RPC:?一個遠程過程調用的抽象,支持負載均衡、容災和集群功能

    • Registry:?服務目錄框架用于服務的注冊和服務事件發布和訂閱

    https://github.com/alibaba/dubbo

    ?

    11.接口文檔管理工具 RAP

    ?

    RAP通過GUI工具幫助WEB工程師更高效的管理接口文檔,同時通過分析接口結構自動生成Mock數據、校驗真實接口的正確性,使接口文檔成為開發流程中的強依賴。有了結構化的API數據,RAP可以做的更多,而我們可以避免更多重復勞動。

    ?

    https://github.com/thx/RAP

    ?

    Nginx7天入門:https://github.com/taobao/nginx-book

    ?



    其他項目:

    1.去哪兒:

    MySQL自動化運維工具 Inception

    MySQL語句的審核,在業界都已經基本被認同了,實際上也是對MySQL語句寫法的統一化,標準化,而之前的人工審核,針對標準這個問題其實是很 吃力的,標準越多,DBA越累,開發也越累。 那么在這個都追求自動化運維的時代,審核也必須要跟上步伐,因此Inception誕生了。而Inception可以做的工作遠不止是一個自動化審核工 具,同時還具備執行,生成對影響數據的回滾語句(類似閃回的功能),這樣一條龍服務的工具,將會給DBA的工作帶來翻天覆地的變化,DBA從此就從繁重的 審核、登上去執行,出錯了很難回滾(如果提前沒有備份的話)的被動局面解放了出來,突然發現,做DBA原來可以這么輕松,工作可以不飽和了,那就有更多的 自由時間學習、進一步向自動化運維平臺的實現等更智能化的方向去發展,是具有里程碑意義的。

    https://github.com/mysql-inception/inception


    2.大眾點評

    實時應用監控平臺 CAT

    CAT 由大眾點評開發的,基于 Java 的實時應用監控平臺,包括實時應用監控,業務監控。

    CAT 支持的監控消息類型包括:

    • Transaction?適合記錄跨越系統邊界的程序訪問行為,比如遠程調用,數據庫調用,也適合執行時間較長的業務邏輯監控,Transaction用來記錄一段代碼的執行時間和次數。

    • Event?用來記錄一件事發生的次數,比如記錄系統異常,它和transaction相比缺少了時間的統計,開銷比transaction要小。

    • Heartbeat?? 表示程序內定期產生的統計信息, 如CPU%, MEM%, 連接池狀態, 系統負載等。

    • Metric?用于記錄業務指標、指標可能包含對一個指標記錄次數、記錄平均值、記錄總和,業務指標最低統計粒度為1分鐘。

    • Trace?用于記錄基本的trace信息,類似于log4j的info信息,這些信息僅用于查看一些相關信息

    消息樹

    CAT監控系統將每次URL、Service的請求內部執行情況都封裝為一個完整的消息樹、消息樹可能包括Transaction、Event、Heartbeat、Metric和Trace信息。

    https://github.com/dianping/cat

    ?

    3.搜狐:

    Redis云管理平臺 CacheCloud

    CacheCloud提供一個Redis云管理平臺:實現多種類型(Redis Standalone、Redis Sentinel、Redis Cluster)自動部署、解決Redis實例碎片化現象、提供完善統計、監控、運維功能、減少開發人員的運維成本和誤操作,提高機器的利用率,提供靈活的伸縮性,提供方便的接入客戶端。

    https://github.com/sohutv/cachecloud

    基于 MySQL 的數據庫中間件 SOHU-DBProxy

    SOHU-DBProxy 是由 搜狐 數據庫團隊開發維護的一個基于MySQL協議的數據中間層項目。它在MySQL官方推出的MySQL-Proxy?0.8.3版本的基礎上, 修改了大量bug,添加了很多功能特性。現在已經在sohu的多個業務線上使用

    DBProxy 主要功能:

    1 即使在同一個連接(只要不在同一個事務中)也能連接復用

    2 負載均衡提高讀性能,支持動態擴展

    3 動態添加的SQL審核和過濾。能夠統計的SQL長時間運行影響性能,并且阻止其運行

    4 用戶連接限制

    5 自動摘除宕機的DB

    6 讀寫分離(當前版本沒有,代碼和測試已經完成,沒有合并到當前版本)

    https://github.com/SOHUDBA/SOHU-DBProxy


    58:https://github.com/58code

    大眾點評:https://github.com/dianping

    豌豆莢:https://github.com/wandoulabs

    華為:https://github.com/HuaweiBigData

    總結

    以上是生活随笔為你收集整理的国内大公司的开源项目一览表(包含mysql读写分离等)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。