日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Hawtio和Jolokia的休眠统计

發(fā)布時(shí)間:2023/12/3 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hawtio和Jolokia的休眠统计 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

企業(yè)Java的很大一部分處理數(shù)據(jù)。 在企業(yè)設(shè)置中使用數(shù)據(jù)的所有不同方式中,仍然存在使用任何種類(lèi)的O / R映射的行之有效且廣泛教授的方法。 JPA標(biāo)準(zhǔn)使每個(gè)人都可以輕松使用它,并且它也應(yīng)該是可移植的。 但是,我們不要談?wù)撨w移細(xì)節(jié)。 O / R映射的最大缺點(diǎn)是,開(kāi)發(fā)人員往往會(huì)失去與數(shù)據(jù)庫(kù)上發(fā)生的事情的聯(lián)系,甚至無(wú)法與數(shù)據(jù)庫(kù)發(fā)出確切的SQL語(yǔ)句。 這是這些項(xiàng)目遇到性能問(wèn)題的第一原因。 如果您在那里,則需要分析根本原因并深入分析問(wèn)題。 我最近發(fā)現(xiàn)了Hibernate的一個(gè)不錯(cuò)的功能,它使這一工作變得相當(dāng)容易。

可用的統(tǒng)計(jì)信息和獲取方法。

Hibernate最多提供3.5.x版本的統(tǒng)計(jì)信息和指標(biāo)API,可讓您了解幕后發(fā)生的事情。 在統(tǒng)計(jì)信息接口API中 ,將所有可用的計(jì)數(shù)器分為三類(lèi):

  • 與常規(guī)會(huì)話(huà)使用率有關(guān)的度量標(biāo)準(zhǔn),例如打開(kāi)的會(huì)話(huà)數(shù),檢索到的JDBC連接等。
  • 與實(shí)體,集合,查詢(xún)和緩存整體相關(guān)的指標(biāo)(也稱(chēng)為全局指標(biāo))。
  • 與特定實(shí)體,集合,查詢(xún)或緩存區(qū)域相關(guān)的詳細(xì)指標(biāo)。

例如,您可以檢查實(shí)體,集合和查詢(xún)的高速緩存命中率,未命中率和放置率,以及查詢(xún)所需的平均時(shí)間。 請(qǐng)注意,在Java中,毫秒數(shù)是近似值。 Hibernate與JVM精度有關(guān),在某些平臺(tái)上,這可能僅精確到10秒。

簡(jiǎn)單的獲取器用于訪問(wèn)全局度量(即不綁定到特定實(shí)體,集合,緩存區(qū)域等)。 您可以通過(guò)名稱(chēng),通過(guò)其HQL或SQL表示來(lái)訪問(wèn)特定實(shí)體,集合或緩存區(qū)域的度量。 有關(guān)更多信息,請(qǐng)參考Statistics, EntityStatistics , CollectionStatistics , SecondLevelCacheStatistics和QueryStatistics API Javadoc。

您要做的就是為您感興趣的會(huì)話(huà)工廠啟用統(tǒng)計(jì)信息,并檢索統(tǒng)計(jì)信息以對(duì)其進(jìn)行分析。 那里有很多示例如何在Spring中使用此功能。 原因很簡(jiǎn)單:Spring附帶了一個(gè)傳奇的MBeanExporter,它將JMX MBeans公開(kāi)為Java對(duì)象。 并猜測(cè)一下:Hibernate Statistics提供了一種通過(guò)JMX公開(kāi)它們的簡(jiǎn)便方法。 但是,如果您僅組合使用更多RedHat魔術(shù),則無(wú)需使用Spring!

基本上,您可以通過(guò)兩種不同的方式在配置的設(shè)置中啟用統(tǒng)計(jì)信息。 最簡(jiǎn)單的方法是向持久性單元配置中添加屬性:

<property name="hibernate.generate_statistics" value="true"/>

但是也可以手動(dòng)啟用它們。 有關(guān)如何執(zhí)行此操作的更多詳細(xì)信息,請(qǐng)參見(jiàn)社區(qū)Wiki和Hibernate文檔中的性能監(jiān)視部分。

通過(guò)示例啟用和公開(kāi)統(tǒng)計(jì)信息

我創(chuàng)建了一個(gè)小示例獨(dú)立的Hibernate應(yīng)用程序示例,其中包含兩個(gè)實(shí)體和一個(gè)主類(lèi),該主類(lèi)正在使用hibernate并初始化您需要了解的所有內(nèi)容。 通過(guò)在GitHub上進(jìn)行分叉,立即獲得它 。 這是一些簡(jiǎn)單的演練:

有兩個(gè)強(qiáng)制性實(shí)體(部門(mén)和雇員)和META-INF / persistence.xml。 這是基本設(shè)置。 這里沒(méi)有太多魔術(shù)。 您可以在persistence.xml中查看在何處啟用統(tǒng)計(jì)信息(可能)。 該示例在主類(lèi)JpaTest中啟用它們。 但是,讓我們從頭開(kāi)始。 main方法按順序執(zhí)行以下步驟:

  • 創(chuàng)建要使用的EntityManager。
  • 注冊(cè)我們需要的統(tǒng)計(jì)Mbean。
  • 初始化Jolokia服務(wù)器以通過(guò)JSON for Hawtio公開(kāi)JMX
  • 對(duì)實(shí)體做些事情。
  • 魔術(shù)始于第二個(gè)步驟,該步驟位于registerHibernateMBeans(EntityManager manager)方法中。 它動(dòng)手了PlatformMBeanServer,注冊(cè)了相關(guān)的Hibernate JMX Mbean,設(shè)置了我們感興趣的Session Factory并啟用了統(tǒng)計(jì)信息。 那很簡(jiǎn)單。 現(xiàn)在,您已經(jīng)注冊(cè)了屬性“ statistics”的JMX MBean“ Hibernate”。 如果您可以通過(guò)JConsole或Mission Control或VisualVM訪問(wèn)服務(wù)器,則可以簡(jiǎn)單地連接到該進(jìn)程并瀏覽統(tǒng)計(jì)信息:

    JConsole中的Hibernate MBean


    在生產(chǎn)環(huán)境中,這通常是根本不可能的。 因此,您需要找到一種通過(guò)http / https進(jìn)行訪問(wèn)的方法。 在這里,我發(fā)現(xiàn)可以方便地將Hawtio用作用于管理Java東西的模塊化Web控制臺(tái)。 簡(jiǎn)而言之,這是一個(gè)帶有插件的網(wǎng)絡(luò)控制臺(tái)。 它有大量的插件 ,可以自定義和擴(kuò)展以滿(mǎn)足您的需求。 今天,我們正在看一個(gè)非常簡(jiǎn)單的插件JMX plugin 。 它為您提供了基礎(chǔ)JMX度量標(biāo)準(zhǔn)數(shù)據(jù)的原始視圖,從而允許訪問(wèn)MBean的整個(gè)JMX域樹(shù)。 但是,為了實(shí)現(xiàn)這一點(diǎn),我們首先需要找到一種將JMX功能公開(kāi)給Hawtio的方法。 這是Jolokia出現(xiàn)的地方。其中有一個(gè)JVM代理 ,可以通過(guò)JSON公開(kāi)JMX MBean。 您所需要做的就是像這樣初始化并啟動(dòng)服務(wù)器:

    JolokiaServerConfig config = new JolokiaServerConfig(new HashMap<String, String>()); JolokiaServer jolokiaServer = new JolokiaServer(config, true); jolokiaServer.start();

    現(xiàn)在您可以嘗試使用Hawtio控制臺(tái)了。 查看快速入門(mén) ,看看有什么可能。 對(duì)于本示例,我僅使用Google Chrome擴(kuò)展程序,您只需下載并拖動(dòng)到Chrome中的擴(kuò)展程序頁(yè)面即可。 看起來(lái)像:

    Chrome中的Hawtio擴(kuò)展


    如果您配置“ localhost”,“ 8778”和路徑“ jolokia”,那么您都將開(kāi)始瀏覽結(jié)果。 單擊“連接”后,您可以瀏覽儀表板或切換到JMX視圖并導(dǎo)航到Hibernate MBean:

    使用Hawtio瀏覽JMX MBean


    來(lái)自DevNation 2014的Stan Lewis對(duì)Hawtio進(jìn)行了更全面的介紹,等待您觀看:

    這是一個(gè)簡(jiǎn)短的例子。 繼續(xù)閱讀GitHub源代碼,并隨意研究Hawtio:

    • 閱讀入門(mén)指南,以了解如何在您自己的環(huán)境中下載和安裝Hawtio。
    • 閱讀有關(guān)如何在各種環(huán)境中配置Hawtio的信息 ,例如配置安全性以及Hawtio的存儲(chǔ)位置。
    • 查看如何在WildFly上配置Hawtio 。
    • 我們更喜歡使用問(wèn)題跟蹤器來(lái)處理想法和問(wèn)題 ,但是如果您只想談?wù)揌awtio的所有事情,請(qǐng)加入我們的郵件列表 。
    • 在GitHub上找到Hawtio源代碼 。

    翻譯自: https://www.javacodegeeks.com/2014/08/hibernate-statistics-with-hawtio-and-jolokia.html

    總結(jié)

    以上是生活随笔為你收集整理的Hawtio和Jolokia的休眠统计的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。