Loading

09 2021 档案

摘要:HotSpot 使用 OopMap 把引用类型的指针记录下来,让 GC Roots 的枚举变得快速准确。 为了减少更新 OopMap 的开销,引入了 安全点。GC STW 时,线程需要跑到距离自己最近的安全点,更新完 OopMap 才能挂起。 处于Sleep 或者 Blocked 状态的线程无法跑到安全点,需要引入安全区域。GC 的时候,不会去管处于安全区域的线程,线程离开安全区域的时候,如果处于 STW 则需要等待直至恢复。 阅读全文
posted @ 2021-09-12 18:13 小新是也 阅读(3663) 评论(0) 推荐(2)
摘要:什么是垃圾:没有任何引用指向的一个或多个对象。 如何识别垃圾,有两种算法: 1. 引用计数法:通过给对象添加被引用的次数来识别。优点是回收简单及时;缺点是无法解决循环引用。 2. 可达性分析法:从一系列根对象(GC Roots)开始,根据引用关系向下搜索,如果某个对象到 GC Roots 间没有任何引用,则此对象就是垃圾。优点是解决了循环引用;缺点是耗时和 STW。 阅读全文
posted @ 2021-09-11 17:44 小新是也 阅读(518) 评论(2) 推荐(2)
摘要:心跳是用于服务端和客户端保持有效连接的一种手段,客户端每隔一小段时间发一个心跳包,以告知服务端其在线。 重连机制是连接断开之后,要使用的时候自动重连的机制。 心跳和重连机制,结合起来让服务端和客户端的连接使用更加合理,该断开的断开节省服务端资源,该重连的重连提高可用性。 阅读全文
posted @ 2021-09-07 08:57 小新是也 阅读(2048) 评论(4) 推荐(2)
摘要:Netty 在服务端与客户端的网络通信中,使用的是异步双向通信(双工)的方式,即客户端和服务端可以相互主动发请求给对方,发消息后不会同步等响应。这样就会有一下问题: 1. 如何识别消息是请求还是响应? 2. 请求如何正确对应到响应? 阅读全文
posted @ 2021-09-06 08:00 小新是也 阅读(1388) 评论(0) 推荐(0)
摘要:TCP 是一个“流”协议,所谓流,就是没有界限的一长串二进制数据。TCP 作为传输层协议,并不了解上层业务数据的具体含义,它会根据 TCP 缓冲区的实际情况进行数据包的划分,所以在业务上认为是一个完整包的,可能会被 TCP 拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这就是所谓的 TCP 拆包和粘包问题。那么如何解决粘包拆包问题呢? 阅读全文
posted @ 2021-09-05 09:36 小新是也 阅读(2629) 评论(0) 推荐(1)
摘要:ccx-rpc 选择的网络框架是 Netty,Netty 是一款大名鼎鼎的异步事件驱动的网络应用程序框架,支持快速地开发可维护的高性能的面向协议的服务器和客户端。 阅读全文
posted @ 2021-09-03 08:47 小新是也 阅读(1347) 评论(0) 推荐(0)