java 度量_Java度量方法调用率
我想计算并打印方法调用率,假设我有以下方法,对每个使用的消息(来自kafka)调用:
public class Consumer {
public void run() {
while (true) {
ConsumerRecords recs = consumer.poll();
for(ConsumerRecord record: recs) {
parseMessageToDB(record.getValue());
}
}
}
public void parseMessageToDB(String message) {
// message parsing logic..
}
}
我的目标是计算每秒的parseMessageToDB方法调用,以了解我的应用程序使用来自Kafka的事件的速度。
我试着用
RateLimiter
但它不返回当前的调用率。
现在,我得到了下面的解决方案,我只需计算15秒内消耗的消息数,并在登录后将其重置为零。
这个计算不太准确,因为我依赖于计时器间隔,而且有可能从另一个15秒窗口获取(或重置)值,但这至少给了我一些图片:
public class Consumer {
private final Timer timer = new Timer();
private final AtomicLong parsedEvents = new AtomicLong();
private static final int CONSUMER_TIMER_RATE_SEC = 15;
public Consumer () {
timer.schedule(new TimerTask() {
@Override
public void run() {
logEventsParsingRate();
}
}, 0, CONSUMER_TIMER_RATE_SEC*1000);
}
public void run() {
while (true) {
ConsumerRecords recs = consumer.poll();
for(ConsumerRecord record: recs) {
parseMessageToDB(record.getValue());
}
parsedEvents.addAndGet(recs.count());
}
}
private void logEventsParsingRate() {
logger.info("Consumer events consuming rate per sec: " +
handledEvents.getAndSet(0)/CONSUMER_TIMER_RATE_SEC);
}
}
所以我还在寻找其他更精确的解决方案。
java 度量_Java度量方法调用率相关推荐
- java content()_Java contentEquals() 方法 - Break易站
Java contentEquals() 方法 Java String类 contentEquals() 方法用于将此字符串与指定的 StringBuffer 比较. 语法 public boolea ...
- java 类型参数_java – 通用方法类型参数
您的两个问题都可以通过以下方式解答:这是Java语法.在Java语言中,参数化方法声明如下: [optional modifiers] [return type] foo() {} 它声明了一个名为T ...
- java replace( . )_Java replace() 方法
Java replace() 方法 Java String类 replace() 方法通过用 newChar 字符替换字符串中出现的所有 oldChar 字符,并返回替换后的新字符串. 语法 publ ...
- JAVA min()_Java min()方法
Java min()方法 min() 方法用于返回两个参数中的最小值. 语法 该方法有以下几种语法格式: double min(double arg1, double arg2) float min( ...
- java 参数传递_java中方法的参数传递机制
无论是什么语言,要讨论参数传递方式,就得从内存模型说起,主要是我个人觉得从内存模型来说参数传递更为直观一些.闲言少叙,下面我们就通过内存模型的方式来讨论一下Java中的参数传递. 这里的内存模型涉及到 ...
- java content()_Java contentEquals() 方法
全屏 Java contentEquals() 方法 contentEquals() 方法用于将将此字符串与指定的 StringBuffer 比较. 语法public boolean contentE ...
- 类与方法java讲解_Java中方法使用的深入讲解
方法的使用 1.方法的基本用法 什么是方法,方法就是一个代码片段,类似于c/c++ 语言中的"函数". 1.1方法存在的意义: 是能够模块化的组织代码(当代码规模比较复杂的时候). ...
- java 正切_Java tan()方法
Java tan()方法 tan() 方法用于返回指定double类型参数的正切值. 语法 doubletan(doubled) 参数 d -- 任何原生数据类型. 返回值 返回指定double类型参 ...
- java起名_java命名方法 | 学步园
Java命名方法 1.骆驼(Camel)命名法:第一个字母小写,随后的每个单词的第一个字母大写.如:studentName 2.帕斯卡(Pascal)命名法:每一个单词的第一个字母都大写.如:Stud ...
最新文章
- 区块链概况:什么是区块链
- C#调用Win32 的API函数--User32.dll
- Linq let Concat
- 静态代理和动态的本质区别
- java+分支合并主线_git如何合并两个远端分支?
- JavaScript Essentials:如何为循环而烦恼
- java addall equals_Java究极打基础之ArrayList篇
- Color类提供的颜色
- php扩展多线程和多进程,PHP 多进程和多线程的优缺点
- File Finder pro Mac版重复文件查找器使用方法
- 2019最新IDEA Java教学视频课程资料
- mysql表关联查询都有什么方式_所有关联表查询方式
- u-boot中nand相关命令使用---- ubi, ubifsls, ubifsmount, ubifsumount
- Android的Logcat命令详解:翻译Enabling logcat Logging
- jmap和jstack使用
- 隐藏受保护的系统文件的注册表键值
- rj45管脚定义_“RJ45接口”定义标准是什么?
- Nintendo帐户,用户ID和网络ID:Nintendo所有令人困惑的帐户,说明
- 郑州小程序分销系统开发怎么设计?
- 电容充电放电时间计算公式
热门文章
- [转]setTimeout() 函数未定义错误
- SQL Server 日期格式
- 解决 vs2010问题 error MSB8008: 指定的平台工具集(v110)未安装或无效
- 卷起来了,写了一套Tensorflow和Pytorch的学习笔记(20G/代码/PPT/视频)
- word2vec中的数学模型
- 万字综述,GNN在NLP中的应用,建议收藏慢慢看
- 找出两个字符串中所有共同的字符_面试中的两个字符串问题竟给我整懵了?!| 原力计划...
- vsftpd增加用户 linux,linux下开通vsftpd 添加新ftp用户
- php redis用途,redis可以做什么?
- 自建服务器同步软件,自建Syncthing中继服务器(私密传输或造福大众)