1. 程式人生 > >港股上市!小米開源專案盤點

港股上市!小米開源專案盤點

640?wx_fmt=jpeg 作者|小智 寫在前面

7 月 9 日,小米在香港掛牌上市,股票程式碼 1810.hk。據瞭解,小米將香港 IPO 報價 16.60 港元,較發行價低 2.35%,首日就破發,淨籌資 239.75 億港元,總市值 3714 億港元;共收到約 10.35 億股認購申請,相當於超額認購約 9.5 倍。知情人士稱,李嘉誠、馬雲、馬化騰 3 人就認購小米份額超過 2.3 億美元。小米早期投資人,回報達到 866 倍。

除了手機等核心業務之外,小米有哪些開源技術同樣值得關注呢?InfoQ 特意蒐集製作了這份小米開源專案列表,以饗讀者。

MACE:移動端深度學習框架

MACE 是專門為移動裝置優化的深度學習模型預測框架,從設計之初,便針對移動裝置的特點進行了專門的優化:速度、功耗、系統響應、初始化延遲、記憶體佔用、模型保護等均有提升。

MACE 支援 TensorFlow 和 Caffe 模型,提供轉換工具,可以將訓練好的模型轉換成專有的模型資料檔案,同時還可以選擇將模型轉換成 C++ 程式碼,支援生成動態庫或者靜態庫,提高模型保密性。目前 MACE 已經在小米手機上的多個應用場景得到了應用,其中包括相機的人像模式,場景識別,影象超解析度,離線翻譯 (即將實現) 等。

地址:https://github.com/XiaoMi/mace

Pegasus:分散式 KV 儲存系統

Pegasus 是小米雲端儲存團隊開發的一個分散式 Key-Value 儲存系統,最初的動機是彌補 HBase 在可用性和效能上的不足。Pegasus 系統的 Server 端完全採用 C++ 語言開發,使用 PacificA 協議支援強一致性,使用 RocksDB 作為單機儲存引擎。

Pegasus 具有高可用、高效能、強一致、高擴充套件、易使用的特性,經過兩年多的開發,目前已支援了十幾個業務。更多細節可閱讀:小米開源分散式 KV 儲存系統 Pegasus。

地址:https://github.com/XiaoMi/pegasus

Open-falcon:企業級監控系統解決方案

Open Falcon 是小米運維部開源的一款網際網路企業級監控系統解決方案。Open Falcon 是完全用 GO 語言編寫的,主要特性如下:

  • 資料採集免配置

  • 容量水平擴充套件

  • 告警策略自發現

  • 告警設定人性化

  • 歷史資料高效查詢

  • Dashboard 人性化

  • 架構設計高可用

官網:http://open-falcon.org/

GitHub 地址:https://github.com/open-falcon

rDSN:分散式服務框架

rDSN 是一個快速構建魯棒分散式系統的框架。它有一個可插拔元件的微核心,包括應用程式、分散式框架、devops 工具和本地執行時 / 資源提供程式,支援它們的獨立開發和無縫整合。這個專案最初是為微軟必應開發的,現在已經在微軟內部和外部的生產中被採用。

GitHub 地址:https://github.com/XiaoMi/rdsn

Shepher:Zookeeper 管理工具

Shepher 是一款 ZooKeeper 的管理工具,小米用它作為配置管理中心。

Shepher 具有以下特性:

  • ZooKeeper 節點的視覺化操作

  • ZooKeeper 節點的快照管理

  • ZooKeeper 節點修改的 Diff 和 Review 功能

  • ZooKeeper 節點操作郵件通知

  • 整合 CAS 和 LDAP 登入

  • 許可權管理

GitHub 地址:https://github.com/XiaoMi/shepher

LInden:基於 Lucene 的實時搜尋系統

Linden 是一個基於 Lucene 建立的實時搜尋系統。它提供一個類似 SQL 查詢語言介面,名為 BQL。BQL 簡單而直接。Linden 提供一個非常簡單的方式來調整搜尋結果排名。你可以在你的查詢中傳遞一段 java 評分程式碼甚至一個評分外掛類名。Linden 也支援通過 linden 靈活查詢從低指數水平自定義評分邏輯,你可以獲得每一個查詢詞匹配的資訊,所以你可以製作一個非常直觀的評分邏輯。這對初學者來說是非常方便的。

GitHub 地址:https://github.com/XiaoMi/linden

Rose:Web 開發框架

Rose 是一個 Java 的 Web 開發框架。Rose 提供各種特性和約束慣例,從而使開發者能夠輕鬆地開發 web 程式。Rose 整合技術,強調最佳實踐,甚至包括名稱規範。Rose 規範了對 Spring 的使用,同時允許開發者放置 applicationContext-xxx.xml 檔案來擴充套件 Rose。

GitHub 地址:https://github.com/XiaoMi/rose

Chronos: 時間戳伺服器

小米公司開發的實現高可用、高效能、提供全域性唯一而且嚴格單調遞增 timestamp 的服務。Chronos 採用主備架構,主伺服器掛了以後備伺服器迅速感知並接替服務,從而實現系統的高可用。服務端使用 Thrift 框 架,經測試每秒可處理約 60 萬次 RPC 請求,客戶端單執行緒每秒可請求 6 萬次 (本地伺服器),保證高效能與低延時。全域性只有唯一的 ChronosServer 提供服務,分配的 timestamp 保證嚴格單調遞增,並且將已分配的值持久化到 ZooKeeper 上,即使發生 failover 也能保證服務的正確性。

GitHub 地址:https://github.com/XiaoMi/chronos

Themis:HBase 跨行 / 跨表的事務處理

Themis 是小米公司開發的,為 HBase 提供了跨行 / 跨表的事務處理,基於 Google 的 percolator。

Themis 通過基於 HBase 的單行事務的兩階段提交和衝突解決來保證交叉行事務的 ACID 特性。Themis 依賴於 Chronos 來提供嚴格遞增的全域性時間戳,它定義事務的全域性順序,並使 Themis 能夠在給定的時間戳之前讀取資料庫快照。Themis 採用 HBase 協處理器框架,無需改變 HBase 原始碼即可應用。我們對它們的正確性進行了幾個月的驗證,並對演算法進行了優化,以獲得更好的效能。

GitHub 地址:https://github.com/XiaoMi/themis

Android_tv_metro:安卓版 TV Metro 框架和伺服器 API

Android_tv_metro 是一款安卓版 TV Metro 框架和伺服器 API,開發語言為 Java。

API 和資料結構

  • 專輯和顯示專案:Metro 風格是由兩個元素構成

  • 專輯可以包含多張專輯和顯示專案

  • 顯示專案可以被定義為視訊,遊戲,應用程式,音樂等

  • 您可以從顯示專案中刪除你自己的遊戲 / 應用 / 視訊詳細條目

GitHub 地址:https://github.com/XiaoMi/android_tv_metro

Minos:分散式的釋出和監控系統

Minos 是小米公司開發的一個分散式的釋出和監控系統。最初是小米開發的用來在 Hadoop 和 ZooKeeper 叢集上釋出和管理的工具。Minos 可輕鬆擴充套件來支援其他的系統,目前已經支援包括 HDFS、YARN 和 Impala 。

GitHub 地址:https://github.com/XiaoMi/minos

寫在最後

恭喜小米成功上市,希望小米能保持初心,在技術上也能做出更多感動人心的好開源專案來!

END


640?wx_fmt=png

更多精彩內容,盡在閱讀原文