(一) apache ignite-簡介

ignite是什么?

apache ignite為開發(fā)人員提供了實時處理大數(shù)據(jù)和內(nèi)存計算的方便易用的解決方案。主要有以下幾點功能:

  1. Data grid 數(shù)據(jù)網(wǎng)格
  2. Compute grid 計算網(wǎng)格
  3. Service grid 服務網(wǎng)格
  4. Bigdata accelerator 大數(shù)據(jù)加數(shù)器
  5. Streaming grid 數(shù)據(jù)流網(wǎng)格

apache ignite核心技術特點如下:

  1. 開源
  2. 純Java編寫
  3. 基于Spring框架
  4. 支持.Net、C++和PHP語言

提供的主要功能如下所示:

  1. Elasticity 彈性:集群可以通過添加節(jié)點進行水平擴展;
  2. Persistence 持久性:數(shù)據(jù)網(wǎng)格可以將緩存中的數(shù)據(jù)持久化到關系型數(shù)據(jù)庫中,甚至是NoSQL數(shù)據(jù)庫中,例如MongoDB或Cassandra;
  3. Cache as a Service(CaaS) 緩存即服務:允許跨組織、多應用去訪問管理內(nèi)存緩存而不是慢速的基于磁盤讀寫的數(shù)據(jù)庫;
  4. 2nd Level Cache 二級緩存:可以作為Hibernate和MyBatis持久化框架的二級緩存層使用;
  5. 高性能hadoop加速器:apache ignite可以替代hadoop task tracker、job tracker和HDFS,從而提高大數(shù)據(jù)分析的性能;
  6. 在Spark應用中共享內(nèi)存:ignite RDD允許在不同的Spark作業(yè)和應用之間輕松的共享狀態(tài);
  7. 分布式計算:apache ignite提供了一組簡單的API,允許用戶在多個節(jié)點上獲得高性能的分布計算和處理數(shù)據(jù)的能力。ignite的分布式服務對于開發(fā)和執(zhí)行微服務架構也會提供很多幫助。
  8. 流:apache ignite允許可伸縮和容錯內(nèi)存中處理連續(xù)不斷的數(shù)據(jù)流,而不是在數(shù)據(jù)存儲在數(shù)據(jù)庫后分析數(shù)據(jù)。

apache ignite應用架構

讓我們快速瀏覽以下傳統(tǒng)的應用結構,如下圖所示:


屏幕快照 2018-05-27 下午11.41.01.png

傳統(tǒng)的應用程序體系結構選擇同步讀寫操作的數(shù)據(jù)存儲。對于要求數(shù)據(jù)一致性和持久性可以起到很好的作用,但是如果有大量事務在隊列中等待,就很容易出現(xiàn)性能瓶頸。

  • 大容量的事務處理
    在應用環(huán)境中添加一層內(nèi)存數(shù)據(jù)網(wǎng)格,它使服務器的RAM來存儲應用程序所需的大部分數(shù)據(jù)。

    數(shù)據(jù)網(wǎng)格位于應用服務和數(shù)據(jù)存儲之間。內(nèi)存數(shù)據(jù)網(wǎng)格在活動的內(nèi)存中緩存由客戶端頻繁訪問的數(shù)據(jù),并且可以在必要時訪問持久化存儲,甚至可以對持久化存儲進行異步發(fā)送或接收更新數(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
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容