- 博客(5)
- 收藏
- 关注
原创 Dubbo的SPI机制
1. SPI(Service Provider Interface) 1.1 JDK SPI机制设计目标:面向对象的设计里模块之间是基于接口编程,模块之间不对实现类进行硬编码,一旦代码里涉及具体的实现类就违反了可插拔的原则如果需要替换一种实现就需要修改代码。不在模块中写死代码,这就是一种服务发现机制。这就是SPI机制,将装配的控制权移到代码之外。Java SPI(Service...
2019-02-24 21:58:17
155
原创 rocketmq存储方式
一 认识mappedByteBuffer mappedByteBuffer在rocketmq中的初始化// 初始化 private void init(final String fileName, final int fileSize) throws IOException { try { this.fileChannel = new...
2019-02-23 17:02:05
491
原创 Netty & RocketMQ & Dubbo的粘包和拆包
1. 粘包和拆包的原因TCP是个流协议,就是没有界限的一串数据。TCP底层并不了解上层的业务数据具体的含义,它会根据TCP缓冲区的实际情况进行包划分所以业务上认为一个完整的包可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包。这就是TCP的粘包和拆包问题。(HTTP为什么没)虽然HTTP也是用了TCP传输机制,但如果利用tcp每次发送数据就与对方建立连接然后双方发...
2019-02-19 21:19:28
998
原创 java内存区域
内存区域程序计数器 数据线程独占区每一个线程都有一个单独的程序计数器。此区域是唯一一个在java虚拟机规范中没有规定任何OutOfMemoryError情况的区域。虚拟机栈 描述的是java方法执行的动态内存模型 栈帧:虚拟机每个线程都有一个固定的大小由参数Xss分配。每个方法执行都会创建一个栈帧伴随着方法从创建到执行完成 用于存储变量表,操作数栈,动态链接...
2018-10-03 13:44:20
340
原创 jvm垃圾回收
1. 如何判断对象为垃圾对象1.引用计数算法在很多的地方判断对象是否存活的算法是这样的:给对象中添加一个引用计数器,每当一个地方引用它时,计数器 就加1;失效时就减1;任何时刻计数器为0的对象是不可能再被使用的。但是堆栈内部进行了循环引用,说明它已经不存在外部引用了那么此时他的计数器也一样会增加而导致无法为0被收集。2.可达性分析法 解决引用计数存在的问题,通...
2018-09-17 22:52:11
103
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人