Toggle navigation
Russ Xia Blog
首页
搜索博客
标签
归档文章
标签
2018
Java
JVM
Spring
杂项
数据结构
算法
Kafka
踩坑
计算机基础
大数据
Hive
2019
Flink
Elasticsearch
Scala
协议
HTTP
MySQL
Dubbo
2020
容器
2021
Redis
音视频
2022
2023
读书笔记
数据库
2024
GIS
LBS
Spring Boot
DDD
2018
Sharding-JDBC Lexer源码分析
Lexer的源码分析,Lexer时怎么做词法分析的
Java中几种属性copy工具比较
常见的属性copy工具及其性能对比
AQS中的独占模式
AQS的毒战模式,以及公平锁和非公平锁
AQS的基本数据结构
AQS的数据结构以及acquire和release的实现
基于自旋的CLH锁
CLH锁的Java实现
自旋锁和互斥锁
自旋锁和互斥锁的区别和对比
基于SnowFlake的分布式主键生成器
SnowFlake的算法分析和实现
Java中三元运算符的装箱拆箱
Java中三元运算符的装箱拆箱遇到的问题及其原因分析
Java集成Kafka简单步骤
Kafka的配置与启动,Java接入Kafka的简单demo
二叉树及其遍历
什么是二叉树,以及二叉树的三种深度遍历方式
关于#与$的区别
Mac下的个人常用软件
Mac下的个人常用软件
类加载过程
Java类加载过程以及双亲委派模型
Spring IOC 循环依赖
什么是循环依赖以及Spring如何检测循环依赖的
String类型与运行时常量池
String类型以及运行时常量池的变迁
Hello World
Hello World
Java
JVM中的Safe Point是什么
Safe Point的定义和实现机制
JDK9中String为何改为byte数组存储
JDK9中String改为byte数组存储有何优点
JDK21中的虚拟线程
虚拟线程的概念、使用、注意事项、源码概览
Spring状态机
状态机的定义、选型和quick start
JDK8升级到JDK17记录
JDK升级的需求背景,以及升级过程中遇到的问题
Java中的SPI与双亲委派模型
什么是SPI,如何实现SPI,SPI是否是对双亲委派模型的破坏
Jedis的主要设计与实现
Jedis的架构设计、链接管理、集群模式支持
JDK从8升级到11时Netty报错
升级JDK,netty版本不兼容问题排查
Java8中的并行流ParallelStream
ParallelStream概要、工作原理及其使用时需要注意的问题
ORM框架对比
Java中常见的ORM框架的基本使用和特点对比
由MateSpace空间不足引发的FullGC
线上MateSpace引发的FullGC问题排查记录
Dubbo中的知识点总结
Dubbo的基础知识:线程模型、协议、序列化方式、负载均衡策略、集群容错模式等等
JDBC字符集乱码问题
线上JDBC字符集乱码问题排查记录
SpringMVC中的异常处理流程
SpringMVC中几种常见的异常处理方式及异常处理流程分析
Spring容器中的构造和销毁Bean的方法
init和destroy方法、@PostConstruct和@PreDestroy注解、InitializingBean/DisposableBean接口
SpringMVC和Servlet
SpringMVC和Servlet的关系,ServletContext,Spring容器,SpringMVC容器的区别
Java中的NIO
Java中的常见IO模型、NUO的使用
Java中的死锁检查
死锁检查:jstack、arthas
JVM常见的几种GC算法
常见的GC算法及其实现算法
Java中的invokedynamic和lambda表达式
lambda表达式和invokedynamic字节码方法的关系
时间轮定时器
时间轮定时器算法及其实现
Java中Thread相关的一些小知识
Java中Thread相关的一些小知识
Dubbo源码笔记(二)
Dubbo源码学习笔记
Dubbo源码笔记(一)
Dubbo源码学习笔记
Dubbo反序列化抛出的空指针异常问题
Dubbo线上踩坑问题排查记录
CountDownLatch、CyclicBarrier与Semaphore
Java中的信号量及其源码解析
Java线程池ThreadPoolExecutor详解
线程池ThreadPoolExecutor设计架构&源码分析
ConcurrentHashMap的高并发和线程安全
ConcurrentHashMap的数据结构和线程安全实现
HashMap中的Hash冲突解决和扩容机制
解决Hash冲突的常见实现方法,HashMap的解决冲突和扩容机制
TreeSet、HashSet、LinkedHashSet的区别
三个Set的区别和代码实现
Sharding-JDBC Lexer源码分析
Lexer的源码分析,Lexer时怎么做词法分析的
Java中几种属性copy工具比较
常见的属性copy工具及其性能对比
AQS中的独占模式
AQS的毒战模式,以及公平锁和非公平锁
AQS的基本数据结构
AQS的数据结构以及acquire和release的实现
基于自旋的CLH锁
CLH锁的Java实现
基于SnowFlake的分布式主键生成器
SnowFlake的算法分析和实现
Java中三元运算符的装箱拆箱
Java中三元运算符的装箱拆箱遇到的问题及其原因分析
Java集成Kafka简单步骤
Kafka的配置与启动,Java接入Kafka的简单demo
关于#与$的区别
类加载过程
Java类加载过程以及双亲委派模型
Spring IOC 循环依赖
什么是循环依赖以及Spring如何检测循环依赖的
String类型与运行时常量池
String类型以及运行时常量池的变迁
JVM
JVM中的Safe Point是什么
Safe Point的定义和实现机制
JDK21中的虚拟线程
虚拟线程的概念、使用、注意事项、源码概览
由MateSpace空间不足引发的FullGC
线上MateSpace引发的FullGC问题排查记录
Java中的死锁检查
死锁检查:jstack、arthas
JVM常见的几种GC算法
常见的GC算法及其实现算法
Java中的invokedynamic和lambda表达式
lambda表达式和invokedynamic字节码方法的关系
类加载过程
Java类加载过程以及双亲委派模型
String类型与运行时常量池
String类型以及运行时常量池的变迁
Spring
Spring状态机
状态机的定义、选型和quick start
SpringMVC中的异常处理流程
SpringMVC中几种常见的异常处理方式及异常处理流程分析
Spring容器中的构造和销毁Bean的方法
init和destroy方法、@PostConstruct和@PreDestroy注解、InitializingBean/DisposableBean接口
SpringMVC和Servlet
SpringMVC和Servlet的关系,ServletContext,Spring容器,SpringMVC容器的区别
Spring IOC 循环依赖
什么是循环依赖以及Spring如何检测循环依赖的
杂项
AppleTV常用安装软件
AppleTV常用安装软件
旅游出行计划2.0
一些预留着一起去旅行的地方
旅游出行计划
江浙沪皖地区,周末出游计划
<程序是怎样跑起来的>读书笔记
cpu、寄存器相关概念
乱七八糟的知识
乱七八糟的知识
给GitHub Pages配置域名和https
GitHub Pages配置https,以及自定义域名配置
个人常用的效率软件及说明
个人常用的效率软件及说明
Surge3配置vmess协议
Surge3 For Mac(v3.3.1)配置vmess协议
Mac下的个人常用软件
Mac下的个人常用软件
数据结构
MySQL与B-Tree和B+Tree
二叉树和平衡二叉树,B-Tree和B+Tree
二叉树及其遍历
什么是二叉树,以及二叉树的三种深度遍历方式
算法
MySQL与B-Tree和B+Tree
二叉树和平衡二叉树,B-Tree和B+Tree
JVM常见的几种GC算法
常见的GC算法及其实现算法
时间轮定时器
时间轮定时器算法及其实现
基于SnowFlake的分布式主键生成器
SnowFlake的算法分析和实现
二叉树及其遍历
什么是二叉树,以及二叉树的三种深度遍历方式
Kafka
Kafka的三种消息投递语义
Kafka的三种消息投递语义以及如何保证幂等
Kafka+Flume+HDFS的实时采集
Kafka+Flume+HDFS的实时采集,组件配置
Java集成Kafka简单步骤
Kafka的配置与启动,Java接入Kafka的简单demo
踩坑
由MateSpace空间不足引发的FullGC
线上MateSpace引发的FullGC问题排查记录
JDBC字符集乱码问题
线上JDBC字符集乱码问题排查记录
PySpark中遇到过的问题合集
PySpark中遇到过的问题合集
Dubbo反序列化抛出的空指针异常问题
Dubbo线上踩坑问题排查记录
Hive中遇到过的问题
Hive中遇到过的问题
Elasticsearch中遇到的问题汇总
Elasticsearch中遇到的问题汇总
Java中三元运算符的装箱拆箱
Java中三元运算符的装箱拆箱遇到的问题及其原因分析
计算机基础
GIS的基础概念
Geographic Information Systems,GIS的定义、常用术语
图数据库及其选型
什么是图数据库,如何选择图数据库
PXE-预启动执行环境
PXE协议简介
常见的数据库分类和选型
数据库常见分类&数据库对比
TCP如何保证可靠传输和流量控制
流量控制与滑动窗口以及拥塞控制
TCP/UDP相关基础知识小结
OSI模型,TCP/UDP协议对比,常见的TCP攻击
HTTP协议入门
HTTP协议的发展历史、各个版本的特性
自旋锁和互斥锁
自旋锁和互斥锁的区别和对比
大数据
PySpark中遇到过的问题合集
PySpark中遇到过的问题合集
Kafka+Flume+HDFS的实时采集
Kafka+Flume+HDFS的实时采集,组件配置
数据仓库中的数据分层
为什么要分层以及如何分层
Hive-QL中的查询
Hive-QL中的JOIN查询、子查询以及order by、sort by、distirbute by、cluster by等
Flink的编程模型
Flink的编程模型和基本术语含义
构建第一个Flink应用
编写Flink程序
Hive的安装和使用
Hive的安装和使用步骤,以及Hive中的分区和桶
Hive的基本概念
Hive的基本架构、体系结构,以及和传统数据库的对比
Hive
Hive中遇到过的问题
Hive中遇到过的问题
Hive-QL的查询调优
HQL的EXPAIN
Hive-QL中的查询
Hive-QL中的JOIN查询、子查询以及order by、sort by、distirbute by、cluster by等
Hive的安装和使用
Hive的安装和使用步骤,以及Hive中的分区和桶
Hive的基本概念
Hive的基本架构、体系结构,以及和传统数据库的对比
2019
MySQL中的EXPLAIN
EXPLAIN命令作用及其参数解释
给GitHub Pages配置域名和https
GitHub Pages配置https,以及自定义域名配置
MySQL与B-Tree和B+Tree
二叉树和平衡二叉树,B-Tree和B+Tree
个人常用的效率软件及说明
个人常用的效率软件及说明
Surge3配置vmess协议
Surge3 For Mac(v3.3.1)配置vmess协议
JDBC字符集乱码问题
线上JDBC字符集乱码问题排查记录
SpringMVC中的异常处理流程
SpringMVC中几种常见的异常处理方式及异常处理流程分析
Spring容器中的构造和销毁Bean的方法
init和destroy方法、@PostConstruct和@PreDestroy注解、InitializingBean/DisposableBean接口
SpringMVC和Servlet
SpringMVC和Servlet的关系,ServletContext,Spring容器,SpringMVC容器的区别
HTTP协议入门
HTTP协议的发展历史、各个版本的特性
Java中的NIO
Java中的常见IO模型、NUO的使用
Java中的死锁检查
死锁检查:jstack、arthas
JVM常见的几种GC算法
常见的GC算法及其实现算法
Java中的invokedynamic和lambda表达式
lambda表达式和invokedynamic字节码方法的关系
时间轮定时器
时间轮定时器算法及其实现
Java中Thread相关的一些小知识
Java中Thread相关的一些小知识
Scala入门学习笔记(二)
Scala入门学习笔记
Scala入门学习笔记(一)
Scala入门学习笔记
PySpark中遇到过的问题合集
PySpark中遇到过的问题合集
Dubbo源码笔记(二)
Dubbo源码学习笔记
Dubbo源码笔记(一)
Dubbo源码学习笔记
Dubbo反序列化抛出的空指针异常问题
Dubbo线上踩坑问题排查记录
Kafka的三种消息投递语义
Kafka的三种消息投递语义以及如何保证幂等
Kafka+Flume+HDFS的实时采集
Kafka+Flume+HDFS的实时采集,组件配置
CountDownLatch、CyclicBarrier与Semaphore
Java中的信号量及其源码解析
Java线程池ThreadPoolExecutor详解
线程池ThreadPoolExecutor设计架构&源码分析
ConcurrentHashMap的高并发和线程安全
ConcurrentHashMap的数据结构和线程安全实现
HashMap中的Hash冲突解决和扩容机制
解决Hash冲突的常见实现方法,HashMap的解决冲突和扩容机制
TreeSet、HashSet、LinkedHashSet的区别
三个Set的区别和代码实现
Hive中遇到过的问题
Hive中遇到过的问题
数据仓库中的数据分层
为什么要分层以及如何分层
Hive-QL的查询调优
HQL的EXPAIN
Hive-QL中的查询
Hive-QL中的JOIN查询、子查询以及order by、sort by、distirbute by、cluster by等
Elasticsearch中遇到的问题汇总
Elasticsearch中遇到的问题汇总
Elasticsearch中的并发控制
常见的并发控制方法:乐观/悲观并发控制,Elasticsearch中的乐观并发控制
Elasticsearch中的document
document的读写策略
Elasticsearch的基本概念和安装
Elasticsearch的特点、集群和安装
Elasticsearch中常用的API
Elasticsearch中常用的API
Flink的编程模型
Flink的编程模型和基本术语含义
构建第一个Flink应用
编写Flink程序
Hive的安装和使用
Hive的安装和使用步骤,以及Hive中的分区和桶
Hive的基本概念
Hive的基本架构、体系结构,以及和传统数据库的对比
Flink
Flink的编程模型
Flink的编程模型和基本术语含义
构建第一个Flink应用
编写Flink程序
Elasticsearch
Elasticsearch中遇到的问题汇总
Elasticsearch中遇到的问题汇总
Elasticsearch中的并发控制
常见的并发控制方法:乐观/悲观并发控制,Elasticsearch中的乐观并发控制
Elasticsearch中的document
document的读写策略
Elasticsearch的基本概念和安装
Elasticsearch的特点、集群和安装
Elasticsearch中常用的API
Elasticsearch中常用的API
Scala
Scala入门学习笔记(二)
Scala入门学习笔记
Scala入门学习笔记(一)
Scala入门学习笔记
协议
PXE-预启动执行环境
PXE协议简介
HTTP中基于Ranges的分片下载与断点续传
基于Ranges的分片下载与断点续传
AAC的实际时长和显示时长
AAC时长显示不精确的原因,如果获取确切的音频时长。
H.264编码格式
H.264编码的基本信息和数据格式
常见的三大直播协议
常见三大直播协议:RTMP、HTTP-FLV、HLS的适应场景及其对比
RSocket协议和基本使用
RSocket协议的特点和基本使用
TCP如何保证可靠传输和流量控制
流量控制与滑动窗口以及拥塞控制
TCP/UDP相关基础知识小结
OSI模型,TCP/UDP协议对比,常见的TCP攻击
HTTP协议入门
HTTP协议的发展历史、各个版本的特性
HTTP
HTTP中基于Ranges的分片下载与断点续传
基于Ranges的分片下载与断点续传
给GitHub Pages配置域名和https
GitHub Pages配置https,以及自定义域名配置
HTTP协议入门
HTTP协议的发展历史、各个版本的特性
MySQL
MySQL中的EXPLAIN
EXPLAIN命令作用及其参数解释
MySQL与B-Tree和B+Tree
二叉树和平衡二叉树,B-Tree和B+Tree
Dubbo
Dubbo中的知识点总结
Dubbo的基础知识:线程模型、协议、序列化方式、负载均衡策略、集群容错模式等等
2020
ORM框架对比
Java中常见的ORM框架的基本使用和特点对比
k8s国内镜像源
k8s相关组件的安装以及配置国内镜像
TCP如何保证可靠传输和流量控制
流量控制与滑动窗口以及拥塞控制
TCP/UDP相关基础知识小结
OSI模型,TCP/UDP协议对比,常见的TCP攻击
由MateSpace空间不足引发的FullGC
线上MateSpace引发的FullGC问题排查记录
Dubbo中的知识点总结
Dubbo的基础知识:线程模型、协议、序列化方式、负载均衡策略、集群容错模式等等
容器
k8s国内镜像源
k8s相关组件的安装以及配置国内镜像
2021
AAC的实际时长和显示时长
AAC时长显示不精确的原因,如果获取确切的音频时长。
H.264编码格式
H.264编码的基本信息和数据格式
常见的三大直播协议
常见三大直播协议:RTMP、HTTP-FLV、HLS的适应场景及其对比
Java中的SPI与双亲委派模型
什么是SPI,如何实现SPI,SPI是否是对双亲委派模型的破坏
Jedis的主要设计与实现
Jedis的架构设计、链接管理、集群模式支持
RSocket协议和基本使用
RSocket协议的特点和基本使用
JDK从8升级到11时Netty报错
升级JDK,netty版本不兼容问题排查
Java8中的并行流ParallelStream
ParallelStream概要、工作原理及其使用时需要注意的问题
Redis
Jedis的主要设计与实现
Jedis的架构设计、链接管理、集群模式支持
音视频
AAC的实际时长和显示时长
AAC时长显示不精确的原因,如果获取确切的音频时长。
H.264编码格式
H.264编码的基本信息和数据格式
常见的三大直播协议
常见三大直播协议:RTMP、HTTP-FLV、HLS的适应场景及其对比
2022
HTTP中基于Ranges的分片下载与断点续传
基于Ranges的分片下载与断点续传
2023
常见的数据库分类和选型
数据库常见分类&数据库对比
<程序是怎样跑起来的>读书笔记
cpu、寄存器相关概念
乱七八糟的知识
乱七八糟的知识
JDK8升级到JDK17记录
JDK升级的需求背景,以及升级过程中遇到的问题
读书笔记
<程序是怎样跑起来的>读书笔记
cpu、寄存器相关概念
数据库
图数据库及其选型
什么是图数据库,如何选择图数据库
常见的数据库分类和选型
数据库常见分类&数据库对比
2024
领域驱动模型学习笔记(一)
领域驱动模型的基本概念
使用PostgreSQL做LBS查询
使用PostgreSQL查询附近的人/附近的店
GIS的基础概念
Geographic Information Systems,GIS的定义、常用术语
图数据库及其选型
什么是图数据库,如何选择图数据库
JVM中的Safe Point是什么
Safe Point的定义和实现机制
JDK9中String为何改为byte数组存储
JDK9中String改为byte数组存储有何优点
AppleTV常用安装软件
AppleTV常用安装软件
PXE-预启动执行环境
PXE协议简介
旅游出行计划2.0
一些预留着一起去旅行的地方
旅游出行计划
江浙沪皖地区,周末出游计划
JDK21中的虚拟线程
虚拟线程的概念、使用、注意事项、源码概览
Spring状态机
状态机的定义、选型和quick start
GIS
使用PostgreSQL做LBS查询
使用PostgreSQL查询附近的人/附近的店
GIS的基础概念
Geographic Information Systems,GIS的定义、常用术语
LBS
使用PostgreSQL做LBS查询
使用PostgreSQL查询附近的人/附近的店
GIS的基础概念
Geographic Information Systems,GIS的定义、常用术语
Spring Boot
使用PostgreSQL做LBS查询
使用PostgreSQL查询附近的人/附近的店
DDD
领域驱动模型学习笔记(一)
领域驱动模型的基本概念