1. 程式人生 > >中國開源專案哪家強?看看阿里,百度,騰訊,360等都開...

中國開源專案哪家強?看看阿里,百度,騰訊,360等都開...

奇虎360




開源github地址: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/

相關推薦

中國開源專案哪家看看阿里360新浪網易小米開源了什麼

奇虎360 1.MySQL中間層 Atlas Atlas是由 Qihoo 360, Web平臺部基礎架構團隊開發維護的一個基於MySQL協議的資料中間層專案。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基礎上,修改了大量bug,添加了很多功能特性。目前

中國開源專案哪家看看阿里360...

奇虎360 開源github地址:https://github.com/Qihoo360 1.MySQL中間層 Atlas Atlas是由 Qihoo 360, Web平臺部基礎架構團隊開發維護的一個基於MySQL協議的資料中間層專案。它

最全BAT演算法面試130題:阿里、京東、美團、今日頭條

【百度、阿里、騰訊、京東、美團、今日頭條】等公司都會必考關於演算法的面試題目,今天總結演算法和題目如下: 演算法基礎: 第一:複雜度估算和排序演算法(上) 1) 時間複雜度和空間複雜度 2)認識對數器 3)氣泡排序 4)選擇排序 5)插入排序 6)如何

主流地圖 座標系轉換、高德

在我國,為了國家安全,電子地圖不可以使用地球座標系WGS84,必須經過偏轉。面前主流的幾款地圖都有其對應的座標系。 例如 高德、騰訊、圖靈、阿里地圖等都是 GCJ-02座標系(也稱火星座標系) 而百度則使用BD-09座標系。 那麼這3個常用座標系直接如何轉換呢。 參照這個

程式設計師如何才能拿下阿里網際網路公司的offer?

作為中國網際網路界的傳奇和標杆企業,BAT 三家公司的一舉一動時間受網際網路人的精密親密關注。今

最全BAT演算法面試100題:阿里、京東、美團、今日頭條

第一:複雜度估算和排序演算法(上) 1) 時間複雜度和空間複雜度 2)認識對數器 3)氣泡排序 4)選擇排序 5)插入

開源專案哪家?Github年終各大排行榜超級盤點(內附開源專案學習資源)

提到開源專案,2018 年註定是不平凡的一年。據 Octoverse 報告資料,僅在 2018 年,Github 上的新使用者就比過去六年的使用者總數還要多 ,儲存庫數量近一億,這些增長都要歸功於開源社群。 2018 年還有半月就要結束了,這一年,大家都學了些什麼?在 G

開源專案哪家?Github年終各大排行榜超級盤點

整理 | Jane 出品 | AI科技大本營 【導語】提到開源專案,2018 年註定是不平凡的一年。據 Octoverse 報告資料,僅在 2018 年,Github 上的新使用者就比過去六年的使用者總數還要多 ,儲存庫數量近一億,這些增長都要歸功於開源社群。 2018

阿里、京東一線網際網路架構師在用的技術體系高併發微服務軟體系統架構

可以說,Java是現階段中國網際網路公司中,覆蓋度最廣的研發語言,掌握了Java技術體系,不管在成熟的大公司,快速發展的公司,還是創業階段的公司,都能有立足之地。 有不少朋友問,除了掌握Java語法,還要系統學習哪些Java相關的技術,今天分享一個,網際網路Java技術學習路線圖。 一:常見模式

這屆網際網路公司月餅:阿里卡哇伊酷炫風京東乾隆審美……

哈嘍程式設計師朋友們大家好哇,今天就正式開啟中秋小長假啦,公司的月餅都發了嗎? 這幾天,朋友圈儼然已成為各大網際網路公司的月餅 PK 戰場,爭奇鬥豔,好不熱鬧。 日常,普通人拼車拼房拼自己,而放到各大網際網路公司上,就是拼員工拼技術拼實力。 每逢佳節,普通人

網賺怎麼推廣搜索開戶現戶【8367101】

隨著網際網路發展日新月異,中國網民規模不斷壯大,目前已有接近8億的網民徜徉在網際網路虛擬空間,通過網際網路賺錢成為越來越多社會大眾的夢想,由此催生了一個新名詞:網賺。入行較早從事網賺的人員已經在PC端網際網路行業挖掘了第一桶金,而在智慧手機的普及和移動寬頻從3G

阿里內部的級別

三大網際網路巨頭公司,百度騰訊跟阿里如何劃分級別?薪資待遇又有多少?除非身居其位,否則很難探知,但是等你到那個位置知道了,卻又不能說,至少不能在公開場合談論。接下來就為大家揭祕,百度、阿里與騰訊內部的級別劃分跟薪資待遇。這是一個群眾喜聞樂見卻又諱莫如深的話題。 各個公司頭

阿里、谷歌 面試題視訊詳解合集

我特意整理了一下百度、騰訊、阿里、谷歌 面試題,有很多問題不是靠幾句話能講清楚,所以乾脆找一些一線公司大佬錄得的視訊,用來回來這些面試題。很多問題其實答案很簡單,但是背後的思考和邏輯不簡單,要做到知其然還要知其所以然。 以下目錄全為視訊講解,沒有任何套路,就是免

阿里內部的級別和薪資待遇(2014)

級別和薪資待遇,除非身居其位,否則你不會知道;但是等你到那個位置知道了,卻又不能說,至少不能在公開場合談論。這是一個群眾喜聞樂見卻又諱莫如深的話題。 別問我是怎麼知道答案的,我不是網際網路獵頭,我正在做的事就是要用網際網路產品替代獵頭,因為獵頭不透明、不全面,還死貴。各

阿里內部的級別和薪資待遇是什麼樣的?

級別和薪資待遇,除非身居其位,否則你不會知道;但是等你到那個位置知道了,卻又不能說,至少不能在公開場合談論。這是一個群眾喜聞樂見卻又諱莫如深的話題。 別問我是怎麼知道答案的,我不是網際網路獵頭,我正在做的事就是要用網際網路產品替代獵頭,因為獵頭不透明、不全面,還死貴。各個公

阿里巴巴、在用的Java架構師知識體系

一、原始碼分析 原始碼分析是一種臨界知識,掌握了這種臨界知識,能不變應萬變,原始碼分析對於很多人來說很枯燥,生澀難懂。 原始碼閱讀,我覺得最核心有三點:技術基礎+強烈的求知慾+耐心。 我認為是閱讀原始碼的最核心驅動力。我見到絕大多數程式設計師,對學習的態度,基本上就是這

阿里內部的級別和薪資待遇是什麼樣的?

 1. 騰訊的技術級別: 騰訊的分級和阿里/百度都不一樣,分為T1/T2/T3/T4共4級,其中又細分為3級。 •員工仍然集中在中段,尤其是 T2.3 和 T3.1 •想從T2跨到T3,即從2.3升3.1是非常困難的 2. 瞭解薪酬和級別的關係: • 騰訊標準薪資是14薪,但是通常能拿到16-20薪• 騰

免費推廣,免費廣告位,手機搜索返回鍵跳轉霸屏精靈手機搜索劫持跳轉

搜索劫持 百度搜索 方法 自己 搜索結果 全部 使用方法 ima mage 如需要下面功能,請聯系我的qq:963087326 js跳轉到代碼 1、支持任何搜索引擎如百度,360,搜狗。 2、兼容全部手機瀏覽器, 3、任何關鍵詞搜索都可以實現劫持跳轉 4、可設置,

學習vue-cli時需要引入外部js庫檔案(如jquery)的問題後解決了再次備忘一下

原文連結:http://www.cnblogs.com/pandabunny/p/5417938.html 感謝這位哥們兒的無私分享 在vue-cli 生成的工程中引入jquery,記錄一下。(模板用的webpack) 首先在package.json裡的depend

Android第三方推送——極光推送雲推送個推

現在Android有不少的第三方推送介面,大大節省了我們的時間,讓我們專注於軟體本身的編寫。 極光推送 極光推送作為一個比較成熟的推送API,用起來是非常便利的,今天就來總結一下。 註冊賬號之後,首先建立一個應用,如下圖: 應用建立完成之後,會生成應用標識(AppKey)