Apache Geode —— 數據管理平臺
概覽
Apache Geode (incubating) 是一個數據管理平臺,提供實時的、一致的、貫穿整個云架構地訪問數據關鍵型應用.
Geode 池化了服務器上的內存, CPU, 網絡資源, 和本地磁盤,跨多個進程來管理應用對象和應用行為. 它使用了動態數據復制和分區技術來實現高可用, 高性能, 高可擴展性, 和容錯. 另外, 對于一個分布式數據容器, Apache Geode 是一個基于內存的數據管理系統, 提供了可靠的異步事件通知和可靠的消息投遞.
Apache Geode 是一個相當成熟, 強健的技術, 最初由GemStone Systems 公司開發(位于美國俄勒岡州的比弗頓市). 商標為 GemFire?, 此項技術初期被廣泛應用在金融領域, 用于華爾街交易平臺,作為事務性, 低延時的數據引擎. 那么今天Apache Geode 有超過600家大中型企業級用戶, 主要是必須滿足低延時和24x7 高可靠要求的,高可擴展的關鍵業務應用系統.
此工程目前在ASF下正處于孵化階段, 通過孵化器來提供贊助. 孵化對于所有新加入的工程很重要,直到基礎設施, 通信, 決策流程足夠穩定,和其他成功的 ASF工程一致. 當孵化器狀態完成或代碼穩定時, 它提示此工程完全由 ASF 承認.
主要概念和模塊
緩存 是一個抽象的概念, 在一個 Geode 分布式系統中用于描述一個節點.
在每個緩存中, 你定義數據 regions . 數據 regions 類似于傳統關系型數據庫中的'表'的概念, 以分布式的方式來管理數據 , 表現為名/值對兒形式. 在分布式系統的每個緩存成員中, 一個 復制 region 保存數據的拷貝. 一個 分區 region 跨緩存成員來同步數據. 在系統配置后, 客戶端應用能夠訪問regions 中的分布式數據, 而不需要知道系統整體架構的知識. 你能夠定義監聽器來接收通知, 當數據發生變化時, 同時你也能夠定義超時標準來刪除在一個 region 中的廢棄掉的數據.
Locators 提供了發現和負載均衡服務. 你配置帶有 locator 服務列表的客戶端, 同時 locators 維護一個成員服務器的動態列表. 默認情況下, Geode 客戶端和服務器使用端口 40404 和多播來互相發現.
Geode 包含了如下的特性:
-
結合冗余, 復制, 和 "shared nothing" 的一致性架構來交付 '自動防故障' 的可靠性和高性能.
-
水平擴展到數千個緩存成員, 具有多種緩存拓撲結構來滿足不同的企業級部署需求. 緩存能夠跨多臺機器進行分布.
-
異步和同步緩存更新傳播.
-
Delta 傳播只分發新版本和舊版本的變化量 (delta) , 而不是整個對象, 從而可以節省大量的網絡開銷.
-
通過經過優化的, 低延時的通信層進行可靠的異步事件通知, 高保障的消息投遞.
-
在沒有額外硬件的輔助下, 應用可以加速4 到 40,000 倍.
-
數據感知和實時BI. 當你查詢時, 如果數據變化了, 你能夠立刻在系統中看見數據的變化.
-
集成 Spring 框架來加速和簡化高可擴展、高并發和事務型企業級應用的開發復雜度.
-
JTA 兼容的事務支持.
-
集群的配置可以寫到文件中和導出到其他集群中.
-
通過HTTP做 遠程集群管理.
-
基于REST應用開發的REST APIs.
-
滾動升級是可行的, 但是需要服從新特性的限制問題.