Apache Ignite [java] [01]-緩解數據庫壓力


關於Apache Ignite 的教程,網上已經有翻譯的,

https://www.zybuluo.com/liyuj/note/230739

上面有詳細的介紹。

本系列是以案例共同學習,本人能力有限,不足之處歡迎指點

項目比較簡陋,只供學習。。。

ignite版本是1.5.0

jdk版本是1.7以上

 

一.安裝

1.如果需要獨立運行ignite,則去官網下載:

http://mirrors.hust.edu.cn/apache//ignite/1.5.0.final/apache-ignite-fabric-1.5.0.final-bin.zip

在指定目錄下解壓后,添加IGNITE_HOME環境變量指向安裝文件夾。

 

2.在maven添加依賴

  <properties>
        <ignite.version>1.5.0.final</ignite.version>
    </properties>

   <dependency>
        <groupId>org.apache.ignite</groupId>
        <artifactId>ignite-core</artifactId>
        <version>${ignite.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.ignite</groupId>
        <artifactId>ignite-spring</artifactId>
        <version>${ignite.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.ignite</groupId>
        <artifactId>ignite-indexing</artifactId>
        <version>${ignite.version}</version>
    </dependency>

ignite-core是必需的,ignite-spring是spring的XML配置,ignite-indexing是sql查詢。

 

二.服務器/客戶端

對於Ignite服務器和客戶端,區別在於服務器是參與數據存儲,流計算等等邏輯,而客戶端是只是連接服務器。不過服務器和客戶端的ignite是對等的。

默認模式是服務器啟動,如果需要客戶端需要配置指定。

1.如果使用獨立運行ignite,在安裝文件夾中的bin目錄下執行。windows系統執行bat,linux執行sh。啟動的時候默認加載config/default-config.xml,也可以指定需要加載的配置文件

2.如果調試啟動,顯示加載 Ignite ignite = Ignition.start("config/default-config.xml");

也可以通過配置

IgniteConfiguration cfg = new IgniteConfiguration();

Ignite ignite = Ignition.start(cfg);

類進行設置,然后啟動

 

三.緩存

緩存提供三種模式:本地,分區,復制。

緩存在啟動Ignite服務器節點的時候,可以通過xml配置和CacheConfiguration類配置。

注意的是不需要在集群中每個節點配置緩存xml,Ignite會根據集群自動分配。

Ignite緩存查詢除了正常的存儲查詢API,還提供了SQL查詢,文本查詢,基於謂詞的掃描查詢。

SQL查詢中的關聯查詢,如果想多個關聯的緩存,而且都是分區模式的話,一定要確保緩存之間,關聯的鍵是並置的(后面例子具體展示)

 

 

四.案例場景

假設一個現有銷售系統中,存在表

客戶資料表 Customer【CustomerID(編號),CustomerName(名稱)】

產品基礎表 Product【ProductID(編號),productName(名稱),price(價格)】

銷售單表頭 Order_H【OrderID(訂單號),CustomerID(客戶編號),OrderDate(訂單日期),OrderState(訂單狀態),SumMoney(總金額),UpdateDate(修改時間)】

銷售單表體 Order_D【Guid,OrderID(訂單號),ProductID(編號),Pcount(數量),PMoney(金額)】

隨着業務量龐大起來,一部分人需要不斷的查詢分析銷售訂單情況,及時調整銷售策略。在不影響原來單據業務的流暢度的情況下,加快分析時間。

這里整個流程就是把銷售系統中的需要查詢的表導入到緩存中,緩解對關系型數據庫的壓力。然后定時觸發更新訂單數據到緩存,使用緩存查詢分析數據。

 

 

Customer,Product屬於基礎數據使用,變更比較少:重復模式

Order_H,Order_D由於數據量比較大故使用:分區模式

 

五.實現

1.ignite節點啟動后,通過jdbc,把需要加載的表緩存到ignit

2.啟動定時器,定時更新緩存數據。

3.通過客戶端模式,查詢分析數據。

 

Example1_Server是服務端

Example1_SQL作為連接查詢客戶端

JdbcSource需要設置jdbc—url

 

附件:

數據庫文件

項目

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM