JPA 緩衝與應用叢集

來源:互聯網
上載者:User
JPA 緩衝與叢集

轉載請保留作者資訊:
作者:88250

日期:2011 年 4 月 25 日

ToC

摘要

JPA 緩衝

JPA 與應用叢集

    策略 1:禁用 L2 緩衝

    策略 2:L2 緩衝同步

    策略 3:一致性資料層

結語

    反思

參考

 

摘要

本文主要介紹了 JPA 緩衝體繫結構以及在叢集環境下 JPA 二級緩衝的問題及應對策略。

JPA 緩衝

JPA 緩衝分為一級緩衝(L1)與二級緩衝(L2)。

其中,一級緩衝即實體管理器(EntityManager),主要負責實體狀態管理。
二級緩衝即 EntityManagerFactory 緩衝,主要負責緩衝實體或資料行(例如 EclipseLink 緩衝實體,Hibernate 緩衝實體 Id 與資料行)。

查詢時,二級緩衝可以有效緩解資料庫壓力,並有助於集合實體的初始化。

JPA 與應用叢集

當應用運行在一個 JVM 裡時,JPA 緩衝是沒有問題的。但如果進行應用叢集,那麼 L2 的更新機制將出現一致性問題。


 

下面提供兩個通用策略以及一個產品相關策略來解決這個問題。

策略 1:禁用 L2 緩衝

如果禁用二級緩衝的話,

  • 所有節點的資料檢視總是可以保證一致
    • 資料總是一致的
    • 每一次事務查詢時都將從資料庫擷取資料構造實體
  • 不存在節點間訊息
  • 應用佔用記憶體上升,因為每次事務都要構造實體
  • 每次事務需要效率變低,因為需要構造實體
  • 效能瓶頸——資料庫
策略 2:L2 緩衝同步

如果進行 L2 緩衝同步,

  • 所有節點的資料檢視總是可以保證一致
    • 資料總是一致的
    • 事務查詢盡量使用 L2 緩衝的實體
  • 建立/更新/刪除 實體時需要同步所有其他節點
  • 同步代價為 O(n2
    )——網路通訊與同步處理開銷可能會超過緩衝帶來的好處


    (Orz)

  • L2 緩衝大小受限於單個節點 JVM 記憶體堆大小

主流 JPA 實現一般會提供 JMS、RMI、JGroups 來進行緩衝同步。

策略3:一致性資料層

這裡所謂的“一致性資料層”就是指使用一個能夠保證分布式時資料一致性的服務,用於替換 L2。

例如組合使用 Oracle Coherence
與 TopLink Grid

結語

對於一個基於 JPA 的 Web 應用程式,我們必須注意 JPA 二級緩衝在叢集時的問題,這是可伸縮的基本點之一。

為瞭解決 JPA 二級緩衝不一致的問題,我們必須犧牲一定的應用效能,或是使用商業產品。

反思

ORM 固然方便,但我認為它帶來的問題遠比解決的問題多,基於關係型資料庫的應用還是 JDBC 直接。

架構是為了簡化代碼,統一管理。但同時帶來的限制也不容忽視。

個人還是偏向於自造輪子,寧肯多寫一些代碼,也不願被架構束縛。

參考
  • Shaun Smith, TopLink Grid: Scaling JPA Application with Coherence
    , 2010
  • Tom Pfaeffle, Oracle Fusion Middleware Integration Guide for Oracle TopLink with Coherence Grid, 11g Release 1 (11.1.1)  E16596-02
    , 2011-02
  • Doug Clarke, Persistence Strategies for Java EE and WebLogic
  • EclipseLink
  • Sandesh, Toplink Cache and Weblogic Cluster

 

本文是使用 B3log Solo
從 簡約設計の藝術
進行同步發布的原文地址:http://88250.b3log.org/jpa-cache-cluster.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.