Metrics学习03 – Histogram

Histogram用来统计数据的分布。Histogram可以提供收集到的数据的最大值、最小值、平均值和中值,此外还能提供百分比分布,如75%,95%,99.9%等等。

Histogram是我学习Metrics的驱动之一。最初是想使用Histogram来优化接口处理统计能力。

看下下面的类图:

Histogram Class UML

类图表示了Histogram需要用到的几类和个接口之间的关系,简单说明下…

dependencyManagement导致版本冲突

今天遇到了一个问题:

程序中某处报了ClassNoDefineError。这个类属于jna框架。检查jna的jar,发现确实没有那个类。关键在于这个报错是在一个依赖内部发生的,jna的jar是这个依赖的内部依赖,即当前应用的一个间接依赖。因为使用的jar是一个比较小众的服务,所以第一印象就是这个服务依赖的jna版本错了。进入到服务的pom看了后,发现该服务使用…

Quartz Job类使用有参数构造方法

也许这篇文章的名字应该改成《Quartz JobFactory的使用》,因为正是使用JobFactory解决的Quartz Job类有参数构造方法的问题。同样,使用JobFactory也能解决Job已有实例重用的问题。

问题描述

问题如标题描述:就是希望为Job类的实例传递参数,结果发现找到的文档中创建Job实例的方法多是通过类反射来实现的,这显然不能满足我的需求。…

Spark数据导出任务内存优化记录

前两天又接了一个Spark任务,倒不复杂,依然是检索HDFS上的日志数据这样的事情。不过瞅着组内跑着十几二十个任务内存一共只有160来G的yarn集群,有些欲哭无泪。

事情还是要做的,反正执行时间要求不太严格,只能想办法尽量压缩内存的占用了。

先说下背景:现在使用的yarn集群由8个容器组成,每个容器的内存大概20G;工作内容是检索数据,源数据大概1T左右,取出…

linux防火墙操作命令

最近又开了一个VPS,免不了一通配置。在这里简单记录下linux防火墙相关的操作。

操作系统:centos7

1. firewall启动、停止、重启

Metrics学习02 – Counter

Counter是要学习的Metrics的第二个工具,顾名思义即是计数器,通常用来执行统计之类的工作。

Counter比Gauge也复杂不了多少,直接看代码好了:

Metrics学习01 – Gauge

最近在写一个小应用,有些计量方式觉得可以参考一下Metrics,所以打算花两天的时间学习一下这个工具。

Overview

Metrics是一个java监控计量工具包。在Spark、Hadoop、Spring等软件中都可以看到它的影子。Metrics提供了多种指标工具,如Gauge、Counter、Metrer、Timer、Histogram以及HealthChe…

SpringBoot探索01 – @Import注解

Overview

Spring中@Import注解最初主要是在配置类中使用,目的是引入其他的配置类(@Configuration)并实现自动注入。

目前Import并不只是支持引入@Configuration注解的类,也支持引入ImportSelectorImportBeanDefinitionRegistrar接口的实现类,甚至可以引入普通的Java Bean…

关于代码重构那些事

首先抛出观点:重构既有代码并不是一件讨好的事情,甚至是一件无功有过的事。

说个我朋友的事(我的一个朋友系列)。这个人颇有些强迫症。他在入职某家公司一段时间后,实在受不了负责模块那些祖传代码的组织方式,就用工作之余的的时间彻底重构了部分内容。也算幸运,他的重构工作没有影响生产业务。在年底进行绩效评估的时候,他将代码重构作为绩效的一部分汇报,却没有得到领导的认可。…