简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
如果逃逸分析证明一个对象不会被其他线程访问到,并且这个对象可以再分,那么创建的时候就不会创建这个对象,而是使用若干个基本类型的标量数据来替换它。JVM 堆中所有对象分配的内存字节总数必须是 8N,如果对象头和实例数据占用的总大小不满足要求,则需要通过对齐数据来填满。不过继承自父类的私有成员变量也需要初始化,子类对象创建的时候会调用父类构造方法来完成这部分工作,但不会创建出父类对象。是对象头中非常关
文章目录1. 简介2. 使用 Java agent 的步骤3. 使用示例1. 简介在之前的文章 静态代理 一节中我们已经提到过 Java 探针技术,简单来说,在 JDK 1.5中 Java 引入了 java.lang.Instrument 包,该包提供了一些工具使得在类加载时期修改 Class 类成为了可能。这实际上就是提供了一种虚拟机级别的 AOP,其基本的原理可依据下图阐明:在 类加载过程 一
文章目录1. Spring 多实例注入的应用2. Spring 多实例注入的使用1. Spring 多实例注入的应用Spring 容器中保存的 bean 默认是单例的,通常来说这样做可以降低 bean 对象创建的频率,在某些访问量大的场景下可以节省对象创建消耗的时间,提高响应性能。但在一些其他场景,比如脚本调度处理多个消息队列中的消息,这时候拉取各个队列消息的步骤是完全相同的,只不过各条队列的..
文章目录1. docker 部署 nginx2. nginx 反向代理配置1. docker 部署 nginx从 Docker Hub 搜索 nginx 的镜像文件,使用如下命令拉取镜像// 拉取 1.21.0 版本docker pull nginx:1.21.0// 默认拉取 latest 最新版本docker pull nginx本机创建文件夹,用于映射取代容器目录或文件,读者自行创建即可。因
文章目录1. 生产者消息的发送2. 源码分析2.1 KafkaProducer 的初始化2.2 KafkaProducer 的消息发送1. 生产者消息的发送Kafka 3.0 源码笔记(3)-Kafka 消费者的核心流程源码分析 中笔者提到Kafka 高性能的重要原因之一就是把负载均衡放在客户端实现,这一点在 Kafka 生产者的设计实现上也有体现。通常一个 Kafka 集群及其生产者的结构关联如
文章目录前言1. Controller 处理请求的流程2. 源码分析2.1 事件生成2.2 事件消费2.3 创建 topic 时的分区分配2.4 业务执行结果处理前言在 Kafka 3.0 源码笔记(5)-Kafka 服务端 Controller 集群选举的流程 中笔者详细分析了 Controller 集群启动时的选主流程,而 Controller 的主节点在确定后需要对外提供服务,其中最重要的就
文章目录前言源码分析1. Kafka 服务端的启动流程2. Kafka 服务端新建连接的处理3. Kafka 服务端请求处理流程前言在 Kafka 3.0 源码笔记(1)-Kafka 服务端的网络通信架构 中笔者介绍了 Kafka 3.0 版本的组件构成,其实由此也可以将本文内容分为三个部分,主要时序如下图所示:Kafka 服务端的启动流程Kafka 服务端新建连接的处理Kafka 服务端请求处理
文章目录1. 前言2. 源码分析1. 前言在Kafka 3.0 源码笔记(6)-Kafka 生产者的源码分析 中笔者分析了作为客户端的 Producer 生产消息的主要动作,本文则着重分析 Kafka 服务端对于客户端生产消息的 Produce 请求的处理。这部分实际上比较简单,笔者在 Kafka 3.0 源码笔记(4)-Kafka 服务端对客户端的 Fetch 请求处理 已经介绍了 Kafka
文章目录Kafka 网络通信组件架构1. 底层服务器 SocketServer1.1 Acceptor 连接接收器1.2 Processor 连接处理器1.3 RequestChannel 请求队列2. 请求处理器线程池 KafkaRequestHandlerPoolKafkaRequestHandler 请求处理器Kafka 网络通信组件架构本系列文章基于 Kafka 3.0 版本 ,读者如有兴
文章目录1.分区副本选主的流程2. 源码分析2.1 BrokerRegistration 请求的处理2.1.1 BrokerRegistration 请求的发起2.1.2 BrokerRegistration 请求的处理2.2 BrokerHeartbeat 请求的交互2.2.1 BrokerHeartbeat 请求的发起2.2.2 BrokerHeartbeat 请求的处理1.分区副本选主的流程