Apache Ignite 特性
阿新 • • 發佈:2019-01-22
1. Apache Ignite 的核心技術
- 開源
- 僅用Java寫出
- 支援Java7,Java8(Java9目前測試不支援)
- 基於Spring
- 支援 .Net, C++ 和 PHP
2. Apache Ignite主要能力
- 叢集性:Ignite的叢集可以通過增加新的節點來橫向擴充套件
- 永續性:Ignite資料網格可以作為RDBMS、NoSQL(MongoDB,Cassandra)的快取入口
- 快取作為服務(CaaS)
- 二級快取:Ignite可以作為Hibernate和MyBatis的快取層
- 分散式計算:Ignite提供了一些簡單的API可以讓使用者在一個叢集中的多個節點內進行分散式計算和資料處理。它的分散式服務非常適用於開發微服務類似的架構。
- 等等等
3.術語對比
Oracle Terminology | Apache Ignite |
---|---|
Database Instance | Apache Ignite server |
Table | Cache |
RowID | Key |
Row | Kew-value |
4. 叢集拓撲結構
Ignite 中的節點都是等價的,並沒有特殊的節點。但是 Ignite 提供了兩種可供選擇的節點型別:Server nodes、Client nodes
1. Server node
一個 Server node 可以儲存資料,參與快取,計算,流處理,也能參與部分 Map-Reduce 記憶體任務。
預設配置下,所有的節點都以Server node啟動。
2. Client node
一個Client node 擁有遠端連線 Server nodes 的能力,並可以在 Cache 裡存取資料。它也可以儲存部分資料(near cache)——即一個小快取,能儲存近期最常用的資料。
Client node 必須手動的配置啟動。
預設情況下,Server node總是會儲存資料並參與計算任務,Client node則可以操控Server caches,儲存本地資料,參與計算任務。
它們兩者都在在一個網格內。在某些特殊情況(如資料節點中存在大量 ACID 事務),可以人為建立叢集,把server nodes 和 client nodes分隔開,讓server node只儲存資料,client node只進行計算,這種方式可以在一個網格拓撲結構中把資料節點和計算節點分開。這種方式的缺陷是:所有的client nodes總是會從其他node中請求資料,這樣會增加網路延遲。
3. Ignite 節點啟動
- Embeded with the application:Ignite節點與應用程式執行在同一個JVM上
- Server in separate JVM(真實叢集拓撲結構):各個server node 會分別執行在自己的JVM上。這也是最常用節點啟用方式。
- Client and Server in separate JVM on single host: 在一個主機上,分別在不同的JVM上執行Client 和 Server nodes。這種情況適用於資料節點裡存在大量事務時,也即是上一節最後討論的內容。