摘要:
[TOC] 生成Java core dump 可以按照下面这个文章的指引来通过jni调用触发Java core dump "Generating a Java Core Dump" 基本思路是通过Java调用本地C代码,然后在C代码中触发一个错误,从而引发jvm crash。 需要注意两个问题 1. 阅读全文
摘要:
目录 处理写请求总体过程 客户端发起写请求 follower和leader交互过程 follower发送请求给客户端 处理写请求总体过程 zk为了保证分布式数据一致性,使用ZAB协议,在客户端发起一次写请求的时候时候,假设该请求请求到的是follower,follower不会直接处理这个请求,而是转 阅读全文
摘要:
目录 session建立的主要过程 客户端发起连接 服务端创建session session建立的主要过程 用一张图来说明session建立过程中client和server的交互 主要流程 服务端启动,客户端启动 客户端发起socket连接 服务端accept socket连接,socket连接建立 阅读全文
摘要:
dubbo序列化 dubbo作为一个rpc框架支持丰富的序列化方式,本文简单介绍dubbo的序列化。本文结构: 对象序列化是什么意思? dubbo序列化 几个问题 对象序列化是什意思? 先来思考两个问题: 1. 普通的Java对象的生命周期是仅限于一个JVM中的,只要JVM停止,这个对象也就不存在了 阅读全文
摘要:
zookeeper集群启动的时候,首先读取配置,接着开始选举,选举完成以后,每个server根据选举的结果设置自己的角色,角色设置完成后leader需要和所有的follower同步。上面一篇介绍了leader选举过程,这篇接着介绍启动过程中的leader和follower同步过程。 本文结构如下: 阅读全文
摘要:
上一篇介绍了zookeeper的单机启动,集群模式下启动和单机启动有相似的地方,但是也有各自的特点。集群模式的配置方式和单机模式也是不一样的,这一篇主要包含以下内容: 概念介绍:角色,服务器状态 服务器组件启动 leader选举 概念介绍:角色,服务器状态 集群模式会有多台server,每台serv 阅读全文
摘要:
`说明:zookeeper系列是基于3.6.0版本的` zookeeper一般使用命令工具启动,启动主要就是初始化所有组件,让server可以接收并处理来自client的请求。本文主要结构: main入口 配置解析 组件启动 main入口 我们一般使用命令行工具来部署zk server,zkServ 阅读全文
摘要:
spring提供了可配置、易扩展的事务处理框架,本文主要从一下几个方面说明spring事务的原理 基本概念 事务配置解析 事务处理过程 基本概念 事务隔离级别 在同时进行多个事务的时候,可能会出现脏读、不可重复读、幻读四种情况,数据库分别有四种隔离级别处理这些情况。Spring中Transactio 阅读全文
摘要:
spring mvc是怎么实现的?为什么我们只需要在方法上写一个注解,就可以通过http访问这个接口?下面我们分3部分来解答这两个问题 spring mvc整体流程 HandlerMapping HandlerAdapter spring mvc整体流程 我们通过看一下spring处理一个http请 阅读全文
摘要:
Netty本身在内存分配上支持堆内存和直接内存,我们一般选用直接内存,这也是默认的配置。所以要理解Netty内存的释放我们得先看下直接内存的释放。 Java直接内存释放 我们先来看下直接内存是怎么使用的 申请的过程是其实就是创建一个DirectByteBuffer对象的过程,DirectByteBu 阅读全文