RPC - 基于 HTTP 协议实现一个简单的 RPC 案例
为了彻底理解 RPC(远程过程调用)的底层原理,我们这里不使用任何第三方 RPC 框架(如 Dubbo 或 Spring Cloud),而是直接利用内置的 Tomcat,通过最原始的 HTTP 请求 + Java 动态代理 + 反射,纯手工打造一个迷你版 RPC 框架。整个案例分成三个模块,公共模块 demo-common,服务提供者 demo-provider,以及服务的调用者 demo-consumer。下面是这三个模块的完整实现代码。
JVM 加载类的详尽过程
在 HotSpot 虚拟机中,创建一个 Java 对象是一个非常严密的过程,涉及类加载检查、内存分配、状态初始化、对像头设置、执行init等多个环节,这些过程中会涉及诸如类加载器、对象头信息、并发处理、GC回收等多个概念或问题,下面我们进行一一拆解。首先我们来看对象创建的五大核心步骤。