jolokia_Hawtio和Jolokia的Hibernate统计
jolokia
企業Java的很大一部分處理數據。 在企業設置中使用數據的所有不同方式中,仍然存在使用任何種類的O / R映射的行之有效且廣泛教授的方法。 JPA標準使每個人都比較容易使用它,并且它也應該是可移植的。 但是,我們不要談論遷移細節。 O / R映射的最大缺點是,開發人員往往會失去與數據庫上發生的事情的聯系,甚至無法獲得針對該數據庫發出的確切SQL語句的聯系。 這是這些項目遇到性能問題的第一原因。 如果您在那里,則需要分析根本原因并深入分析問題。 我最近發現了Hibernate的一個不錯的功能,它使這一工作變得相當容易。
可用的統計信息和獲取方法。
Hibernate最多提供3.5.x版本的統計信息和指標API,可讓您了解幕后發生的事情。 統計接口API中對所有可用計數器進行了描述,分為三類:
- 與常規會話使用率有關的度量標準,例如打開的會話數,檢索到的JDBC連接等。
- 與實體,集合,查詢和緩存整體相關的指標(也稱為全局指標)。
- 與特定實體,集合,查詢或緩存區域有關的詳細指標。
例如,您可以檢查實體,集合和查詢的高速緩存命中率,未命中率和放置率,以及查詢所需的平均時間。 請注意,在Java中,毫秒數是近似值。 Hibernate與JVM精度有關,在某些平臺上,這可能僅精確到10秒。
簡單的獲取器用于訪問全局度量(即不綁定到特定實體,集合,緩存區域等)。 您可以通過名稱,通過其HQL或SQL表示形式訪問特定實體,集合或緩存區域的指標。 有關更多信息,請參考Statistics, EntityStatistics , CollectionStatistics , SecondLevelCacheStatistics和QueryStatistics API Javadoc。
您要做的就是為您感興趣的會話工廠啟用統計信息,并檢索統計數據以對其進行分析。 那里有很多示例如何在Spring中使用此功能。 原因很簡單:Spring附帶了一個傳奇的MBeanExporter,它將JMX MBeans公開為Java對象。 想一想:Hibernate Statistics提供了一種通過JMX公開它們的簡便方法。 但是,如果您僅組合了一些RedHat魔術,就無需使用Spring!
基本上,您可以通過兩種不同的方式在已配置的設置中啟用統計信息。 最簡單的方法是向持久性單元配置添加屬性:
<property name="hibernate.generate_statistics" value="true"/>但是也可以手動啟用它們。 有關如何執行此操作的更多詳細信息,請參見社區Wiki和Hibernate文檔中的性能監控部分。
通過示例啟用和公開統計信息
我創建了一個小示例獨立的Hibernate應用程序,該應用程序具有兩個實體和一個主要類,該類正在使用hibernate并初始化您需要了解的所有內容。 通過在GitHub上進行分叉,立即獲得它 。 這是一些簡單的演練:
有兩個強制性實體(部門和雇員)和META-INF / persistence.xml。 這是基本設置。 這里沒有太多魔術。 您可以在persistence.xml中查看在何處啟用統計信息(可能)。 該示例在主類JpaTest中啟用它們。 但是,讓我們從頭開始。 main方法按順序執行以下步驟:
魔術始于第二個步驟,該步驟位于registerHibernateMBeans(EntityManager manager)方法中。 它動手了PlatformMBeanServer,注冊了相關的Hibernate JMX Mbean,設置了我們感興趣的Session Factory并啟用了統計信息。 那很容易。 現在,您已經注冊了屬性“ statistics”的JMX MBean“ Hibernate”。 如果您可以通過JConsole或Mission Control或VisualVM訪問服務器,則可以簡單地連接到該進程并瀏覽統計信息:
JConsole中的Hibernate MBean
在生產環境中,這通常是根本不可能的。 因此,您需要找到一種通過http / https進行訪問的方法。 在這里,我發現可以方便地將Hawtio用作用于管理Java東西的模塊化Web控制臺。 簡而言之,這是一個帶有插件的網絡控制臺。 它有大量的插件 ,可以自定義和擴展以滿足您的需求。 今天,我們正在看一個非常簡單的插件JMX plugin 。 它為您提供了底層JMX度量標準數據的原始視圖,從而允許訪問MBean的整個JMX域樹。 但是為了實現這一點,我們首先需要找到一種向Hawtio公開JMX功能的方法。 這是Jolokia出現的地方。其中有一個JVM代理 ,可以通過JSON公開JMX MBean。 您所需要做的就是像這樣初始化并啟動服務器:
現在,您可以嘗試使用Hawtio控制臺了。 查看快速入門 ,看看有什么可能。 對于本示例,我僅使用Google Chrome擴展程序,您只需下載并拖動到Chrome中的擴展程序頁面即可。 看起來像:
Chrome中的Hawtio擴展
如果您配置“ localhost”,“ 8778”和路徑“ jolokia”,那么您都將開始瀏覽結果。 單擊“連接”后,您可以瀏覽儀表板或切換到JMX視圖并導航到Hibernate MBean:
使用Hawtio瀏覽JMX MBean
來自DevNation 2014的Stan Lewis對Hawtio進行了更全面的介紹,等待您觀看:
這是一個簡短的例子。 繼續閱讀GitHub源代碼,并隨意研究Hawtio:
- 閱讀入門指南,以了解如何在您自己的環境中下載和安裝Hawtio。
- 閱讀有關如何在各種環境中配置Hawtio的信息 ,例如配置安全性以及Hawtio的存儲位置。
- 了解如何在WildFly上配置Hawtio 。
- 我們更喜歡使用問題跟蹤器來處理想法和問題 ,但是如果您只想談論Hawtio的所有事情,請加入我們的郵件列表 。
- 在GitHub上找到Hawtio源代碼 。
翻譯自: https://www.javacodegeeks.com/2014/08/hibernate-statistics-with-hawtio-and-jolokia.html
jolokia
總結
以上是生活随笔為你收集整理的jolokia_Hawtio和Jolokia的Hibernate统计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓导航下载carplay(安卓导航下载
- 下一篇: JVM垃圾收集和优化