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方法按顺序执行以下步骤:

  1. 创建要使用的EntityManager。
  2. 注册我们需要的统计Mbean。
  3. 初始化Jolokia服务器以通过JSON for Hawtio公开JMX
  4. 对实体做些事情。

魔术始于第二个步骤,该步骤位于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。 您所需要做的就是像这样初始化并启动服务器:

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

现在,您可以尝试使用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统计相关推荐

  1. Hawtio和Jolokia的休眠统计

    企业Java的很大一部分处理数据. 在企业设置中使用数据的所有不同方式中,仍然存在使用任何种类的O / R映射的行之有效且广泛教授的方法. JPA标准使每个人都可以轻松使用它,并且它也应该是可移植的. ...

  2. Hibernate 统计记录总数方法汇总

    /*** @TODO:查询某一年度的所有计划数量*/publicint findCountByYear(String currYear) { String hqlString = "sele ...

  3. 加速你的Hibernate引擎(上)

    为什么80%的码农都做不了架构师?>>>    1.引言 Hibernate是最流行的对象关系映射(ORM)引擎之一,它提供了数据持久化和查询服务. 在你的项目中引入Hibernat ...

  4. 在Hibernate,EhCache,Quartz,DBCP和Spring中启用JMX

    继续使用JMX的过程(请参阅: 人类JMX ),我们将学习如何在一些流行的框架中启用JMX支持(通常是统计和监视功能). 这些信息大部分都可以在项目的主页上找到,但是我决定在收集这些信息的同时,很少添 ...

  5. Hibernate EHCache - Hibernate二级缓存

    Hibernate EHCache - Hibernate二级缓存 欢迎使用Hibernate二级缓存示例教程.今天我们将研究Hibernate EHCache,它是最受欢迎的Hibernate二级缓 ...

  6. HibernateEHCache –Hibernate二级缓存

    Welcome to the Hibernate Second Level Cache Example Tutorial. Today we will look into Hibernate EHCa ...

  7. IntelliJ IDEA Spring Boot(5) 集成Hibernate

    上一篇集成了mybatis.这一篇我来集成hibernate,顺道把ehcache缓存也集成进去.下篇我们再讲 mybatis与ehcache集成 pom依赖增加 <dependency> ...

  8. spring boot集成ehcache 2.x 用于hibernate二级缓存

    spring boot集成ehcache 2x 用于hibernate二级缓存 项目依赖 Ehcache简介 hibernate二级缓存配置 ehcache配置文件 ehcache事件监听 注解方式使 ...

  9. Java Hibernate 二级缓存配置及缓存的统计策略

    1.首先要打开二级缓存,在hibernate.cfg.xml中添加如下配置: <propertyname="hibernate.cache.use_second_level_cache ...

最新文章

  1. leetcode算法题--子集
  2. BERT论文阅读(二): CG-BERT:Conditional Text Generation with BERT for Generalized Few-shot Intent Detection
  3. Nginx的正向代理与反向代理
  4. 【数据结构与算法】之给Nx3网格图涂色的方案数的求解算法
  5. 探讨PHP页面跳转几种实现技巧
  6. express-generator——Express应用生成器贼快!
  7. 2022年Java 工程师面试题
  8. 【UE4】特效之 Particle System 详解(二)—— 特效池
  9. html简单随机抽奖页面(在线抽奖、随机选取、自动挑选)
  10. 解决 Sketch 在MAC M1上运行卡顿等问题!
  11. SAP-MM MRP类型详解
  12. 百度登录界面CSS+HTML
  13. 火影150集碎片拾忆 记于2014-04-08
  14. 文件上传之黑名单绕过
  15. Mysql到DM8使用DTS工具进行迁移
  16. 汇编指令 int 21 h 调用
  17. ansys_lsdyna输出.k文件lsprepost输出部件加速度
  18. CTF中MISC常见工具总结
  19. android界面不显示,Android 可视化界面编辑器无法显示界面问题的终极解决方案
  20. react-player一个很好用的直播组件,可以播放视频等等

热门文章

  1. 2021“MINIEYE杯”中国大学生算法设计超级联赛(2)I love exam(背包)
  2. 【LCT】弹飞绵羊(luogu 3203/金牌导航 LCT-2)
  3. 深度学习中反向传播算法简单推导笔记
  4. Redis+Tomcat+Nginx集群实现Session共享,Tomcat Session共享
  5. Java中几种常量池的区分
  6. vue前期知识点笔记
  7. 使用spring实现邮件的发送(含测试,源码,注释)
  8. 查找前端依赖 jquery css js 时间控件 不要用远程依赖 会变化的 card
  9. Navicat Premium 11 12 闪退
  10. 猜数字游戏 : 共给玩家10次机会,若第一次就猜对了,显示‘您真是个天才’,若10也没猜对,显示“您太笨了,下次努力吧!”, 若是第2-10次猜对了,只简单的显示:“恭喜您猜对了”。