flink实时分析的几点总结
最近在折腾公司打点日志(trace跟踪日志,类似阿里的鹰眼)的实时分析,大概总结一下。
实时流处理的技术越来越成熟,相对于spark而言,flink的模型已经抽象的很好;幸好我是从beam开始切入了解流处理的,现在回头看一些spark以及spark stream,flink的概念就很好懂了。
最近在折腾公司打点日志(trace跟踪日志,类似阿里的鹰眼)的实时分析,大概总结一下。
实时流处理的技术越来越成熟,相对于spark而言,flink的模型已经抽象的很好;幸好我是从beam开始切入了解流处理的,现在回头看一些spark以及spark stream,flink的概念就很好懂了。
最近在梳理公司的大数据处理的流程,运维HBase的同事反馈我们中间件的链路收集日志(类似阿里的鹰眼)给HBase造成的压力最大,问我能不能优化一下。在优化的过程中,梳理了整个链路的反压处理,意识到在流处理,甚至在普通的大流量处理里面,这是一个很重要的问题,结合自己在消息系统的经验,在这里总结一下。
公司某个业务总是发现机器CPU偏高,要求运维扩容,结果扩容后,过了一段时间CPU还是涨了上来,又要求扩容。运维觉得老是这么扩容不是办法,就拉我一起看看问题出在哪儿。
在另外一篇文章里,介绍了如何使用perf排查cpu偏高的问题,接到问题后,马上使用perf map agent看了看,很明显就找出来耗CPU的地方:
最近在研究如何提升MQ的性能,了解到了JVM的停顿,一个一个来,先看看Java的偏向锁带来的性能损耗
Java在锁方面做了好多优化,具体的一些介绍,另外,网上也有很多文档,可以自己搜索看看。这里大概摘抄总结下:
在写一个统计qps的组件,收获了不少,在上一篇里面有讲。写完之后想压测下看看,统计下每个方法的耗时。以前用过JProfile,但是,JProfle在linux部署比较麻烦,当然,更关键的是这个是收费的;找了半天,发现阿里出了一个TProfiler,看起来简单好用,还免费,试了试确实还不错。
有个项目发现mq消息堆积,上去看了下,发现日志中出现:1
Caused by: java.lang.OutOfMemoryError: unable to create new native thread