
技术demo
文章平均质量分 79
hanlang_java
安安静静写点代码
展开
-
简单单机版限流器
在高并发系统设计的时候,限流器是一个很重要的工具,现在的分布式框架大多集成了限流器如何手撸一个简单限流器呢限流种类限制并发数:即限制同一时刻的请求数,例如限制1w的并发,就是说一个请求来了我们检查一下当前正在运行的请求,如果数量不超过1w我们就放行限制qps:限制时间段内的请求数,例如限制qps为1w,就是说一秒钟最多有1w个请求放行限制并发数对于第一种我们需要一个信号量,请求开始...原创 2019-12-06 16:35:08 · 602 阅读 · 0 评论 -
jdbc与mybatis及spring
分别以jdbc,mybatis,spring-jdbc,spring-mybatis访问数据库原创 2015-07-16 21:25:48 · 850 阅读 · 0 评论 -
入侵java进程的方法
需求当我们线上程序运行的时候,难免会遇到一些业务问题,在排查问题的时候我们会去看日志,查看一些函数输入输出来定位问题;然而许多时候,我们在项目开发的时候并没有留下足够的日志来排查问题,这时候就需要一些特殊的方法来排查,比如远程debug,重新增加日志重启服务,或者用btrace等工具来排查,各种工具都有各自的优点和使用的场景,具体不足本篇暂不讨论,本文只介绍一种新的简单的工具,这个工具可以提供...原创 2018-05-21 23:54:39 · 1202 阅读 · 1 评论 -
classLoader原理及自定义ClassLoader
ClassLoader功能类的加载JVM运行的时候,当用到一个类的时候,需要把类字节码文件加载到内存并生成运行时数据结构,其中classLoader的角色必不可少classLoader加载一个类的时候,会调用其如下方法public Class<?> loadClass(String name) throws ClassNotFoundException { return...原创 2019-05-10 20:34:53 · 1219 阅读 · 0 评论 -
ASM静态代码解析方法依赖及生成方法调用流程图方法
系统依赖系统开发,随着功能不断完善,体量渐渐增大,分模块抽象,复用工具等;涉及复杂的业务逻辑的时候,也会引入外部服务,外部工具;业务开发追求的是功能的完整性和快速迭代,但是在分析系统可用性可靠性的时候,我们往往需要找到一些系统的薄弱点,及被依赖点依赖排查在java开发中,最细粒度的依赖就是方法级依赖,有了方法级依赖,就可以拓展到系统,平台级依赖大多数时候,我们都是靠撸代码来找出方法间的依赖...原创 2019-05-10 20:37:00 · 3823 阅读 · 0 评论 -
使用java-tracer画方法内部逻辑的时序图
java-tracer功能介绍java-tracer是一个利用JVMTI技术实现的java方法调用轨迹录制的工具,它能帮我们绘制方法调用的时序图,利用时序图结合源码,我们可以很容易地理解一些框架的运行逻辑及细节结果样例如下链接即是一个简单的spring注入的时序图https://fengzhongke.github.io/pages/spring.html源码地址github地址:...原创 2019-09-04 00:15:44 · 1768 阅读 · 1 评论 -
sequence生成器写法
sequence场景在分布式环境下,有的时候我们需要给每一个单元生成一个唯一id,在并发量不是很大的时候,数据库的自增主键是一个不错的选择,但是当数据量非常大,或者并发非常高的时候,自增的方式就会成为瓶颈,于是我们可以用sequence的方式。sequence方式其实也是一种自增的方式,只不过我们是批量自增,每次从数据库请求一个数据段,用完了之后再请求一段,以达到减小数据库访问量的目的方案设...原创 2019-09-07 00:48:01 · 1398 阅读 · 0 评论