自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

横云断岭的专栏

日落黄金台金黄落日--微信公众号:横云断岭的专栏

原创 深入Spring Boot系列

原理/使用 spring boot应用启动原理分析 spring boot executable jar/war 原理 深入Spring Boot:ClassLoader的继承关系和影响 深入Spring Boot:Spring Context的继承关系和影响 深入Spring Boot:实现...

2018-07-25 19:13:16 1024 0

原创 spring boot应用启动原理分析

spring boot quick start在spring boot里,很吸引人的一个特性是可以直接把应用打包成为一个jar/war,然后这个jar/war是可以直接启动的,不需要另外配置一个Web Server。如果之前没有使用过spring boot可以通过下面的demo来感受下。 下面以...

2015-11-30 22:36:38 179638 37

原创 新blog地址: http://hengyunabc.github.io/

新blog地址http://hengyunabc.github.io/新blog切换到github.io 上,先试用一段时间。

2015-02-17 10:53:15 4340 0

原创 利用redis + lua解决抢红包高并发的问题

抢红包的需求分析 抢红包的场景有点像秒杀,但是要比秒杀简单点。 因为秒杀通常要和库存相关。而抢红包则可以允许有些红包没有被抢到,因为发红包的人不会有损失,没抢完的钱再退回给发红包的人即可。 另外像小米这样的抢购也要比淘宝的要简单,也是因为像小米这样是一个公司的,如果有少量没有抢到,则下次再抢,人...

2014-02-20 20:08:26 129382 30

原创 阿里巴巴 Arthas 3.1.5版本支持火焰图,快速定位应用热点

ArthasArthas是Alibaba开源的Java诊断工具,深受开发者喜爱。Github:https://github.com/alibaba/arthas文档:ht...

2019-11-27 08:30:00 552 1

原创 Arthas开源一周年,Github Star 16K,我们一直在坚持什么?

缘起 最近看到一个很流行的标题,《开源XX年,star XXX,我是如何坚持的》。 看到这样的标题,忽然发觉Arthas从2018年9月开源以来,刚好一年了,正好在这个秋高气爽的时节做下总结和回顾。 Arthas是Alibaba开源的Java诊断工具,深受开发者喜爱。 Github: http...

2019-09-27 13:55:02 274 0

原创 Arthas开源一周年,Github Star 160K,我们一直在坚持什么?

缘起最近看到一个很流行的标题,《开源XX年,star XXX,我是如何坚持的》。看到这样的标题,忽然发觉Arthas从2018年9月开源以来,刚好一年了,正好在这个秋高气...

2019-09-27 11:10:51 79 0

原创 Alibaba Arthas 3.1.2版本发布:增加logger/heapdump/vmoption命令,支持tunnel server

Arthas是Alibaba开源的Java诊断工具,深受开发者喜爱。 Github: https://github.com/alibaba/arthas 文档:https://alibaba.github.io/arthas Arthas 3.1.2版本持续增加新特性,下面重点介绍: log...

2019-09-10 10:58:53 316 0

原创 Arthas 3.1.2版本发布: 增加logger/heapdump/vmoption命令,支持tunnel server

Arthas是Alibaba开源的Java诊断工具,深受开发者喜爱。Github:https://github.com/alibaba/arthas文档:https://...

2019-09-09 18:02:10 184 0

原创 一次配置,每天受益的Bash命令补全技巧

在bash里补全历史命令本文介绍本人觉得最好用的bash配置技巧,一次配置,每天受益。在bash里,最常见的搜索历史命令的办法是ctrl + r,但是这个步骤太多,比较麻...

2019-08-07 08:30:00 95 0

原创 阿里巴巴Arthas源码分析--jad反编译原理

Arthas是阿里巴巴开源的Java应用诊断利器,本文介绍Arthas 3.1.1版本里jad命令的实现原理。https://github.com/alibaba/art...

2019-06-28 11:30:00 334 0

原创 通过Heap dump巧妙排查Java JMX连接不上的问题

背景最近排查一个JMX本地连接问题,记录一下。我们的启动脚本在应用启动后,会通过JMX来动态检查应用状态,那么这里就需要动态启动JMX功能了。动态打开Java进程的JMX...

2019-06-11 23:33:03 121 0

原创 Arthas实践:是哪个Controller处理了请求?

背景 Arthas是阿里巴巴开源的Java诊断利器,深受开发者喜爱。 https://github.com/alibaba/arthas Arthas在线教程 之前分享了Arthas怎样排查 404/401 的问题: http://hengyunabc.github.io/arthas-spr...

2019-06-05 11:09:31 464 0

原创 Alibaba Arthas 3.1.1版本:trace支持行号/小幅改进

Arthas是Alibaba开源的Java诊断工具,深受开发者喜爱。Github: https://github.com/alibaba/arthas文档:https:/...

2019-05-17 15:40:29 106 0

原创 阿里巴巴Arthas实践--jad/mc/redefine线上热更新一条龙

背景 尽管在生产环境热更新代码,并不是很好的行为,很可能导致:热更不规范,同事两行泪。 但很多时候我们的确希望能热更新代码,比如: 线上排查问题,找到修复思路了,但应用重启之后,环境现场就变了,难以复现。怎么验证修复方案? 又比如: 本地开发时,发现某个开源组件有bug,希望修改验证。如果是...

2019-02-19 16:56:18 3041 4

原创 阿里巴巴 Arthas 3.1.0版本:在线教程、内存编译器和强大的自动补全

Arthas是Alibaba开源的Java诊断工具,深受开发者喜爱。 从Arthas上个版本发布,已经过去两个多月了,Arthas 3.1.0版本不仅带来大家投票出来的新LOGO,还带来强大的新功能和更好的易用性,下面一一介绍。 Github: https://github.com/aliba...

2019-02-14 14:43:11 635 0

原创 Alibaba Arthas 3.1.0版本:在线教程、内存编译器和强大的自动补全

ArthasArthas是Alibaba开源的Java诊断工具,深受开发者喜爱。从Arthas上个版本发布,已经过去两个多月了,Arthas 3.1.0版本不仅带来大家投...

2019-02-14 11:51:20 82 0

原创 Alibaba Arthas实践--获取到Spring Context,然后为所欲为

背景Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。https://github.com/alibaba/arthasArthas提供了非常丰富的关于调用拦截的命令...

2019-01-28 16:00:00 107 0

原创 深入Spring Boot:从JVM分析hibernate-validator NoClassDefFoundError

问题可重现的Demo代码:https://github.com/hengyunabc/spring-boot-inside/tree/master/demo-hibernate-vali...

2019-01-15 15:00:00 65 0

原创 深入Spring Boot--使用Arthas排查Spring Boot应用404/401问题

背景 在Java Web/Spring Boot开发时,很常见的问题是: 网页访问404了,为什么访问不到? 登陆失败了,请求返回401,到底是哪个Filter拦截了我的请求? 碰到这种问题时,通常很头痛,特别是在线上环境时。 本文介绍使用Alibaba开源的Java诊断利器Arthas,来快...

2019-01-13 23:19:29 2394 0

原创 Arthas实践--快速排查Spring Boot应用404/401问题

背景在Java Web/Spring Boot开发时,很常见的问题是:网页访问404了,为什么访问不到?登陆失败了,请求返回401,到底是哪个Filter拦截了我的请求?碰到这种问题时,...

2019-01-07 11:22:36 67 0

原创 当Dubbo遇上Arthas:排查问题的实践

Apache Dubbo是Alibaba开源的高性能RPC框架,在国内有非常多的用户。Github: https://github.com/apache/incubator-dubbo文...

2018-12-07 08:30:00 63 0

原创 当DUBBO遇上Arthas - 排查问题的实践

Apache Dubbo是Alibaba开源的高性能RPC框架,在国内有非常多的用户。 Github: https://github.com/apache/incubator-dubbo 文档:http://dubbo.incubator.apache.org/zh-cn/ Arthas是Al...

2018-12-07 02:15:04 1854 1

原创 Alibaba应用诊断利器Arthas 3.0.5版本发布:提升全平台用户体验

Arthas从9月份开源以来,受到广大Java开发者的支持,Github Star数三个月超过6000,非常感谢用户支持。同时用户给Arthas提出了很多建议,其中反映最多的是: Windows平台用户体验不好 Attach的进程和最终连接的进程不一致 某些环境下没有安装Telnet,不能连接到...

2018-11-30 01:14:02 1419 0

原创 深入Spring Boot:利用Arthas排查NoSuchMethodError

前言 有时spring boot应用会遇到java.lang.NoSuchMethodError的问题,下面以具体的demo来说明怎样利用arthas来排查。 Demo: https://github.com/hengyunabc/spring-boot-inside/tree/master/de...

2018-11-01 00:21:18 1566 0

原创 Arthas实践--使用redefine排查应用奇怪的日志来源

背景 随着应用越来越复杂,依赖越来越多,日志系统越来越混乱,有时会出现一些奇怪的日志,比如: [] [] [] No credential found 那么怎样排查这些奇怪的日志从哪里打印出来的呢?因为搞不清楚是什么logger打印出来的,所以想定位就比较头疼。 下面介绍用Alibaba开源的应...

2018-11-01 00:19:51 1455 1

原创 Arthas实践--抽丝剥茧排查线上应用日志打满问题

现象 在应用的 service_stdout.log里一直输出下面的日志,直接把磁盘打满了: 23:07:34.441 [TAIRCLIENT-1-thread-1] DEBUG io.netty.channel.nio.NioEventLoop - Selector.select() retur...

2018-11-01 00:17:41 2287 0

原创 使用Arthas抽丝剥茧排查线上应用日志打满问题

现象在应用的 service_stdout.log里一直输出下面的日志,直接把磁盘打满了:23:07:34.441 [TAIRCLIENT-1-thread-1] DEBUG io.ne...

2018-10-16 22:42:59 52 0

原创 Alibaba开源Java诊断利器Arthas

ArthasArthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:这个类从哪个 jar 包加载的?为什么会报...

2018-09-17 23:11:36 26 0

原创 深入Spring Boot:显式配置 @EnableWebMvc 导致静态资源访问失败

现象当用户在自己的spring boot main class上面显式使用了 @EnableWebMvc,发现原来的放在 src/main/resources/static 目录下面的静...

2018-08-22 07:30:00 72 0

原创 深入Spring Boot:编写兼容Spring Boot1和Spring Boot2的Starter

前言 Spring Boot 2正式发布已经有段时间,应用升级之前,starter先要升级,那么如何支持Spring Boot 2? 为什么选择starter同时兼容spring boot 1和spring boot 2 从用户角度来看 如果不在一个starter里兼容,比如用版本号...

2018-07-25 19:05:24 1135 0

原创 Kotlin里的Extension Functions实现原理分析

Kotlin里的Extension Functions Kotlin里有所谓的扩展函数(Extension Functions),支持给现有的java类增加函数。 https://kotlinlang.org/docs/reference/extensions.html 比如给Strin...

2018-07-24 01:40:20 922 0

原创 OpenJDK里的AsmTools简介

前言 https://wiki.openjdk.java.net/display/CodeTools/asmtools 在OpenJDK里有一个AsmTools项目,用来生成正确的或者不正确的java .class文件,主要用来测试和验证。 我们知道直接修改.class文件是很麻烦的,...

2018-07-19 21:04:08 4411 0

原创 思考gRPC :为什么是protobuf

背景 谈到RPC,就避免不了序列化的话题。 gRPC默认的序列化方式是protobuf,原因很简单,因为两者都是google发明的,哈哈。 在当初Google开源protobuf时,很多人就期待是否能把RPC的实现也一起开源出来。没想到最终出来的是gRPC,终于补全了这一块。 跨语言的...

2018-07-19 18:59:22 3629 0

原创 思考gRPC :为什么是HTTP/2

背景 gRPC是google开源的高性能跨语言的RPC方案。gRPC的设计目标是在任何环境下运行,支持可插拔的负载均衡,跟踪,运行状况检查和身份验证。它不仅支持数据中心内部和跨数据中心的服务调用,它也适用于分布式计算的最后一公里,将设备,移动应用程序和浏览器连接到后端服务。 https://...

2018-07-19 18:55:50 9622 5

原创 从JVM heap dump里查找没有关闭文件的引用

背景 最近排查一个文件没有关闭的问题,记录一下。 哪些文件没有关闭是比较容易找到的,查看进程的fd(File Descriptor)就可以。但是确定fd是在哪里被打开,在哪里被引用的就复杂点,特别是在没有重启应用的情况下。 在JVM里可以通过heap dump比较方便地反查对象的引用,从而找...

2018-07-02 02:03:00 560 0

原创 深入Spring Boot:快速集成Dubbo + Hystrix

背景 Hystrix 旨在通过控制那些访问远程系统、服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。Hystrix具备拥有回退机制和断路器功能的线程和信号隔离,请求缓存和请求打包,以及监控和配置等功能。 Dubbo是Alibaba开源的,目前国内最流行的java rpc框架。 本...

2018-06-14 15:07:31 4472 1

原创 优化技巧:提前if判断帮助CPU分支预测

分支预测 在stackoverflow上有一个非常有名的问题:[为什么处理有序数组要比非有序数组快?]( https://stackoverflow.com/questions/11227809/why-is-it-faster-to-process-a-sorted-array-than-a...

2018-05-16 20:05:18 1381 1

原创 深入Spring Boot:实现对Fat Jar jsp的支持

spring boot 对于jsp支持的限制 对于jsp的支持,Spring Boot官方只支持了war的打包方式,不支持fat jar。参考官方文档: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-fea...

2018-05-16 19:48:13 865 1

原创 深入Spring Boot: 怎样排查 java.lang.ArrayStoreException

java.lang.ArrayStoreException 分析 这个demo来说明怎样排查一个spring boot 1应用升级到spring boot 2时可能出现的java.lang.ArrayStoreException。 demo地址:https://github.com/hengy...

2018-03-07 19:12:25 18270 4

提示
确定要删除当前文章?
取消 删除