- 博客(12)
- 资源 (6)
- 收藏
- 关注
原创 javaagent
javaagentJVM启动前静态InstrumentJavaagent 是什么?Javaagent是java命令的一个参数。参数 javaagent 可以用于指定一个 jar 包,并且对该 java 包有2个要求:这个 jar 包的 MANIFEST.MF 文件必须指定 Premain-Class 项。 Premain-Class 指定的那个类必须实现 premain() 方法。 public class PreMainTraceAgent { public s...
2020-10-16 11:31:10 366 1
原创 流量回放上的调研
探索如何利用流量回放,将线上真实的数据流转化为覆盖全面的回归测试用例。在调研了业内比较知名的流量回放方案,如 TcpReplay,TcpCopy 后。发现这些方案均只是服务端入口流量的 Copy 组件,虽然的确能将线上流量「复制 & 引流」至目标服务,如果仅仅是复制 HTTP 入口的流量,那么接收流量回放的服务必须也要配套和被流量录制服务业务数据一致的缓存,数据库,第三方服务等, 能录制/回放应用调用链路入口(通常为 HTTP)的 Request/Response能录制/回放应...
2020-10-15 16:59:39 2125
原创 JVM SandBox简要介绍
JVM-SANDBOX(沙箱)实现了一种在不重启、不侵入目标JVM应用的AOP解决方案。沙箱的特性无侵入:目标应用无需重启也无需感知沙箱的存在类隔离:沙箱以及沙箱的模块不会和目标应用的类相互干扰可插拔:沙箱以及沙箱的模块可以随时加载和卸载,不会在目标应用留下痕迹多租户:目标应用可以同时挂载不同租户下的沙箱并独立控制高兼容:支持JDK[6,11]沙箱常见应用场景线上故障定位线上系统流控线上故障模拟方法请求录制和结果回放动态日志打印安全信息监测和脱敏.
2020-10-15 15:50:13 13224 3
原创 锁
提高“锁”的性能1、减少锁持有的时间。2、减少锁粒度。concurrentHashMap3、读写分离锁来替换独占锁。4、锁分离;LinkedBlockingQueue的put()、take() 方法。采用不同的锁。5、锁的粗化。减少对锁的请求同步次数。Java虚拟机的锁1、偏向锁 ;如果一个线程获得了锁,那么锁就进入偏向模式。当这个线程再次请求锁时,无须再做任何同步操作...
2019-10-30 17:04:14 125
原创 Linux网络IO模型
同步和异步,阻塞和非阻塞Linux下的五种I/O模型:同步模型1)、同步阻塞I/O;2)、同步非阻塞I/O;3)、I/O多路复用(select、poll、epoll )4)、信号驱动I/O;2、异步异步I/O;...
2019-10-25 15:31:24 92
原创 Zookeeper observer作用
zookeeper 服务中的每个Server可服务多个client,并且Client可连接到ZK服务中的任何一台Server来提交请求。若是读请求,则由每台Server的本地副本数据库直接响应。若是改变Server状态的写请求,需要通过一致性协议来处理。zab协议规定:来自Client的所有写请求,都要转发给ZK服务中唯一的leader,由leader根据该请求发起一个proposal。然后,...
2019-10-25 15:31:14 2562 9
原创 Java虚拟机
Java虚拟机栈:栈桢:每个方法执行都会创建一个栈桢,伴随着方法从创建到执行完成。用于储存局部变量表,操作数栈,动态链接,方法出口。局部变量表:存放编译期可知的各种基本类型,引用类型。局部变量表内存空间在编译期完成内存分配。虚拟机栈与线程同时创建,每个方法在执行时在其中创建一个栈帧,用于存储局部变量、操作数栈、动态链接、方法返回地址。正常调用完成后恢复调用者的局部变量表、操作数栈、递增...
2019-08-20 10:39:23 92
原创 Python属性
在Python中,属性和方法的访问权限只有两种,也就是公开的和私有的,如果希望属性是私有的,在给属性命名时可以用两个下划线作为开头。但是,Python并没有从语法上严格保证私有属性或方法的私密性,它只是给私有的属性和方法换了一个名字来“妨碍”对它们的访问,事实上如果你知道更换名字的规则仍然可以访问到它们,下面的代码就可以验证这一点。之所以这样设定,可以用这样一句名言加以解释,就是“We are a...
2019-07-19 16:06:28 125
原创 Java 多线程 join() 方法
join 方法的使用在很多情况下,主线程创建并启动子线程,如果子线程需要大量耗时运算,主线程往往早于子线程结束之前结束。这时,如果主线程想等待子线程执行完成之后再结束,比如子线程处理一个数据,主线程要取得这个数据的值,就要用到join() 方法。join()的作用就是等待线程对象销毁。join 方法释放锁。join() 方法在内部使用wait() 方法进行等待。...
2019-07-19 11:01:33 176
原创 Java多线程之volatile
volatile只是轻量级的线程操作可见方式,并非同步方式,如果是多写场景,一定会出现线程安全问题。如果是一写多读的并发场景,使用volatile修饰则非常合适。volatile一写多读最典型的应用是CopyOnWriteArrayList。它在修改数据的时会把整个集合的数据全部复制出来,对写操作加锁,修改完成后,在用setArray()把array指向新的集合。使用vol...
2019-07-19 11:00:52 229 1
原创 Java 多线程之synchronized(一)
package com.company.thread.synchronize;/** * @Description TODO * @Author zhouxinjian * @Date 2019-07-19 09:49 **/public class PublicVar { public String username = "A"; public Strin...
2019-07-19 10:02:12 90
转载 Cron表达式详解
序言Cron表达式:就是用简单的xxoo符号按照一定的规则,就能把各种时间维度表达的淋漓尽致,无所不在其中,然后在用来做任务调度(定时服务)的quart.net中所认知执行,可想而知这是多么的天衣无缝,说是编码艺术凝集一点不过分。牛逼吹完啦,我就写几个简单的cron表达式欣赏下:1、0/20 * * * * ? note:每20秒2、15 0/2 * * * ? note:每...
2018-04-27 14:28:49 341
深入理解java虚拟机jvm高级特性与最佳实践第2版原创精品系列4124642.epub
2019-07-19
hadoop大数据挖掘从入门到进阶实战视频教学版5547871.epub
2019-07-19
kafka权威指南5209107.epub
2019-07-19
springboot实战图灵程序设计丛书4178488.epub
2019-07-19
人月神话二十周年纪念版3218058.azw
2019-07-11
hadoop大数据处理3709937.azw3
2019-07-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人