随笔分类 -  技术

title: "MappedByteBuffer引起的jvm crash问题“
摘要: 阅读全文

posted @ 2017-02-07 11:54 jenwang 阅读(260) 评论(1) 推荐(0)

hbase启动问题记录
摘要:昨天测试环境的Hbase启动有问题,日志中显示: transaction type: 1 error: KeeperErrorCode = NoNode for /hbase hmaster等其他进程日志中显示连接不上zookeeper,发现zookeeper启动有问题。 于是判断可能是zookee 阅读全文

posted @ 2017-02-07 11:54 jenwang 阅读(286) 评论(0) 推荐(0)

jenkins集成caliper"
摘要:1.jenkins安装caliper-ci插件(Caliper CI Plugin)2.编写microbench 最简便的办法就是作为单元测试来跑(这样就不用在jenkins里配置跑microbench的步骤)。 编写好microbench后,加一个test方法运行Runner.main(XXXBenchmarksTest.class, new String[] { ... 阅读全文

posted @ 2017-02-07 11:53 jenwang 阅读(200) 评论(0) 推荐(0)

避免jar依赖冲突的一种办法
摘要:java中的依赖冲突问题一直比较头疼,特别是做公用包给其他系统用的时候,现在都不敢引入太多的依赖,基本上每次都要帮别人解决依赖冲突的问题,非常麻烦。 特别是碰到一些老系统还不是用maven管理的,人家用你的一个功能还要拷一堆jar包过去,然后排出哪些包在系统中已经有了,版本是否兼容等问题,非常蛋疼。为了方便人家使用就想把所有依赖打成一个jar包提供出去,但这样潜在的依赖冲突问题就会更严重,以后出... 阅读全文

posted @ 2017-02-07 11:52 jenwang 阅读(655) 评论(0) 推荐(0)

关于Java Microbenchmark的一点记录
摘要:大家知道单元测试对代码质量的保障作用已经没什么可说的了。Microbenchmark(微基准测试)也是保证代码质量的重要手段,也是容易忽略的,它用来衡量一些小的代码片段的性能指标,完善的Microbenchmark可以便于定位出一些性能瓶颈,它类似于单元测试,能够进行持续集成,当代码有改动时能够通过持续集成的历史数据 看出对性能的影响点。 之前使用Google的Caliper,但目前还在重度开发... 阅读全文

posted @ 2017-02-07 11:52 jenwang 阅读(3153) 评论(0) 推荐(0)

一个java内存泄漏的排查案例
摘要:这是个比较典型的java内存使用问题,定位过程也比较直接,但对新人还是有点参考价值的,所以就纪录了一下。 下面介绍一下在不了解系统代码的情况下,如何一步步分析和定位到具体代码的排查过程 (以便新人参考和自己回顾) 初步的现象 业务系统消费MQ中消息速度变慢,积压了200多万条消息,通过jstat观察 阅读全文

posted @ 2017-02-07 11:51 jenwang 阅读(233) 评论(0) 推荐(0)

关于serialVersionUID与序列化"
摘要:java序列化trick and trap 厂内经常出现序列化对象版本不匹配问题,于是发本文说明一些序列化的注意点 调用MQ、memcached、rpc等等涉及到远程通讯的都会经过序列化,虽然客户端透明的封装了细节,但底层是一定会有序列化操作的。因此了解序列化的注意事项是非常有必要的,可以避免误用导 阅读全文

posted @ 2017-02-07 11:50 jenwang 阅读(603) 评论(0) 推荐(0)

如何一次性下载某个类库依赖的所有jar包"
摘要:** 经常碰到这种事情: **在一些非maven工程中(由于某种原因这种工程还是手工添加依赖的),需要用到某个新的类库(假设这个类库发布在maven库中),而这个类库又间接依赖很多其他类库,如果依赖路径非常复杂的话,一个个检查手动下载是很麻烦的事. ** 下面给出一个便捷的办法: **创建一个新目录里面建一个maven pom文件, 添加需要依赖的类库: 4.0.0 com.dep.d... 阅读全文

posted @ 2017-02-07 11:49 jenwang 阅读(132) 评论(0) 推荐(0)

一个使用本地缓存引起的线程阻塞问题
摘要:现象 有同事的java系统运行一段时间后发生请求阻塞的情况(返回504),从仅有的内存dump文件看,大部分线程都阻塞在了一个本地缓存(jodd cache)的读锁上了(ReentrantReadWriteLock$ReadLock.lock)。 排查过程 阶段一 本能的反应应该是写锁被占用了才会出 阅读全文

posted @ 2017-02-07 11:42 jenwang 阅读(829) 评论(1) 推荐(0)