ignite是什么?
apache ignite為開發(fā)人員提供了實時處理大數(shù)據(jù)和內(nèi)存計算的方便易用的解決方案。主要有以下幾點功能:
- Data grid 數(shù)據(jù)網(wǎng)格
- Compute grid 計算網(wǎng)格
- Service grid 服務網(wǎng)格
- Bigdata accelerator 大數(shù)據(jù)加數(shù)器
- Streaming grid 數(shù)據(jù)流網(wǎng)格
apache ignite核心技術特點如下:
- 開源
- 純Java編寫
- 基于Spring框架
- 支持.Net、C++和PHP語言
提供的主要功能如下所示:
- Elasticity 彈性:集群可以通過添加節(jié)點進行水平擴展;
- Persistence 持久性:數(shù)據(jù)網(wǎng)格可以將緩存中的數(shù)據(jù)持久化到關系型數(shù)據(jù)庫中,甚至是NoSQL數(shù)據(jù)庫中,例如MongoDB或Cassandra;
- Cache as a Service(CaaS) 緩存即服務:允許跨組織、多應用去訪問管理內(nèi)存緩存而不是慢速的基于磁盤讀寫的數(shù)據(jù)庫;
- 2nd Level Cache 二級緩存:可以作為Hibernate和MyBatis持久化框架的二級緩存層使用;
- 高性能hadoop加速器:apache ignite可以替代hadoop task tracker、job tracker和HDFS,從而提高大數(shù)據(jù)分析的性能;
- 在Spark應用中共享內(nèi)存:ignite RDD允許在不同的Spark作業(yè)和應用之間輕松的共享狀態(tài);
- 分布式計算:apache ignite提供了一組簡單的API,允許用戶在多個節(jié)點上獲得高性能的分布計算和處理數(shù)據(jù)的能力。ignite的分布式服務對于開發(fā)和執(zhí)行微服務架構也會提供很多幫助。
- 流:apache ignite允許可伸縮和容錯內(nèi)存中處理連續(xù)不斷的數(shù)據(jù)流,而不是在數(shù)據(jù)存儲在數(shù)據(jù)庫后分析數(shù)據(jù)。
apache ignite應用架構
讓我們快速瀏覽以下傳統(tǒng)的應用結構,如下圖所示:

傳統(tǒng)的應用程序體系結構選擇同步讀寫操作的數(shù)據(jù)存儲。對于要求數(shù)據(jù)一致性和持久性可以起到很好的作用,但是如果有大量事務在隊列中等待,就很容易出現(xiàn)性能瓶頸。
-
大容量的事務處理
數(shù)據(jù)網(wǎng)格位于應用服務和數(shù)據(jù)存儲之間。內(nèi)存數(shù)據(jù)網(wǎng)格在活動的內(nèi)存中緩存由客戶端頻繁訪問的數(shù)據(jù),并且可以在必要時訪問持久化存儲,甚至可以對持久化存儲進行異步發(fā)送或接收更新數(shù)據(jù)的操作。如下圖所示:
在應用環(huán)境中添加一層內(nèi)存數(shù)據(jù)網(wǎng)格,它使服務器的RAM來存儲應用程序所需的大部分數(shù)據(jù)。
屏幕快照 2018-05-27 下午11.59.03.png
通過使用內(nèi)存網(wǎng)格,使數(shù)據(jù)更接近應用程序端。這樣可以減少了響應時間,并且可以將事務時間從幾秒降低到幾分之一秒。
通過這種方式,應用程序可以支持大量涉及tb級操作數(shù)據(jù)的并發(fā)事務,從而為客戶提供更快、更可靠的事務體驗。與傳統(tǒng)的RDBMS相比,它是一個更現(xiàn)代的可伸縮數(shù)據(jù)管理系統(tǒng),隨著需求的增加,它能夠彈性伸縮。 -
彈性網(wǎng)絡加速
使用像apache ignite這樣的內(nèi)存數(shù)據(jù)網(wǎng)格,可以對web應用程序提供容錯性,并加速web應用程序的性能。在不改變?nèi)魏未a的情況下,可以通過緩存共享web應用程序之間的會話狀態(tài)。如圖所示:
屏幕快照 2018-05-28 上午12.09.15.png
上述方法提供了系統(tǒng)的高可用性,并提升了用戶體驗。如果使用apache ignite的方案,可以使web會話集群和用戶web會話的復制機制的性能非常高。
-
事件處理和實時分析
數(shù)據(jù)可以告訴我們現(xiàn)在的業(yè)務背景是什么。隨著IoT最為持續(xù)的數(shù)據(jù)源,使用熱數(shù)據(jù)hot data比以往任何時候都要多。
傳統(tǒng)的數(shù)據(jù)管理系統(tǒng)無法快速處理數(shù)據(jù),從而在發(fā)生重大事件時及時通知業(yè)務,例如:在線信用卡欺詐檢測或風險計算。apache ignite允許在可伸縮和容錯的內(nèi)存中處理連續(xù)不斷的數(shù)據(jù)流,而不是數(shù)據(jù)到達數(shù)據(jù)庫后再分析。
屏幕快照 2018-05-28 上午12.20.50.png
這不僅可以使你能夠關聯(lián)關系并從大量的數(shù)據(jù)中檢測出有意義的模式,而且還可以更快、更高效的進行處理。
apache ignite數(shù)據(jù)網(wǎng)格可以管理大量傳入的數(shù)據(jù),并在服務器發(fā)生變更時向業(yè)務應用程序推送通知。ignite的持續(xù)查詢功能,允許系統(tǒng)快速的訪問大量的傳入數(shù)據(jù),并采取行動。 -
分布式微服務
微服務體系結構有很多優(yōu)點,并且具有一定程度的模塊化,這對于單模塊代碼庫來說是非常難以實現(xiàn)的。Apache Ignite的內(nèi)存數(shù)據(jù)網(wǎng)格可以為同一分布式集群中的相應微服務提供獨立的緩存節(jié)點,對比傳統(tǒng)方法具有一些優(yōu)勢。
image.png
它允許您最大限度地利用數(shù)據(jù)結構/網(wǎng)格資源。在內(nèi)存中集群上運行的服務比基于磁盤的應用程序服務器要快得多。Apache Ignite基于微服務的服務網(wǎng)格提供了一個平臺來自動部署集群中的任何數(shù)量的分布式服務實例。
-
大數(shù)據(jù)加速器
Hadoop以其經(jīng)濟地存儲和分析大型數(shù)據(jù)集的能力而被廣泛使用,并且早已超越了作為新興技術的地位。然而,它的批處理調(diào)度開銷以及基于磁盤的數(shù)據(jù)存儲使它不適合用于分析生產(chǎn)環(huán)境中的實時數(shù)據(jù)。限制Hadoop和Map/Reduce性能擴展的一個主要因素是Hadoop依賴于生成大量輸入/輸出(I/O)文件的文件系統(tǒng)。另一種方法是將所需的分布式數(shù)據(jù)存儲在內(nèi)存中。在內(nèi)存中放置Map/Reduce,以消除文件I/O延遲。
image.png
Apache Ignite提供了一組有用的組件,允許內(nèi)存中的Hadoop作業(yè)執(zhí)行和文件系統(tǒng)操作。Apache Ignite Hadoop accelerator可以自動部署所有必需的可執(zhí)行程序和庫,以便在jvm上執(zhí)行Map/Reduce,這大大減少了啟動時間,縮短到毫秒。這可以通過避免訪問輔助存儲的延遲來加快速度。此外,由于執(zhí)行引擎與內(nèi)存中的數(shù)據(jù)網(wǎng)格集成,因此可以有效地將駐留在數(shù)據(jù)網(wǎng)格中的鍵/值對讀入執(zhí)行引擎,以最小化訪問時間。
-
緩存即服務
數(shù)據(jù)驅(qū)動的應用程序加載時間太長,使用起來既枯燥又令人沮喪。五分之四的在線用戶會在加載頁面時點擊離開。內(nèi)存中的數(shù)據(jù)網(wǎng)格可以提供跨組織的公共緩存層,這可以允許多個應用程序訪問管理的內(nèi)存緩存。
image.png





