- 博客(102)
- 收藏
- 关注
原创 ZooKeeper系列之请求处理核心机制与流程全解析
本文介绍了ZooKeeper客户端和服务端的核心架构。客户端主要包括Zookeeper对象、HostProvider、ClientCnxn等组件,通过Packet数据包进行网络通信,支持Watcher监听机制和异步回调。服务端分为Leader、Follower和Observer三种角色,Leader负责写操作和提案广播,Learner负责读操作和请求转发。整体采用主从架构,通过提案机制实现数据一致性,支持会话管理和节点变更监听功能。
2025-11-27 10:32:14
220
原创 MySQL系列之基础信息和实际应用
MySQL基础入门指南,主要介绍了MySQL的安装配置、基础架构、核心概念(如存储引擎、索引、事务)以及备份恢复、主从复制等基础运维操作,适合初学者快速了解MySQL的核心特性和基本使用方法
2025-11-18 15:33:30
416
原创 MySQL系列之数据读取与存储核心机制
本文系统地解析了MySQL的数据存取机制,将其划分为连接层、服务层、存储引擎层和系统文件层。文章详细阐述了SQL查询如何从客户端请求开始,依次经过这四层的处理,最终转化为磁盘操作,并返回结果。核心在于揭示各层的职责及其协同工作原理,帮助理解MySQL高性能与数据安全性的关键。
2025-11-17 10:37:43
468
原创 RocketMQ实现原理之NameServer和Broker
本文系统介绍了RocketMQ的核心架构与消息处理流程,主要内容包括:1)四大核心组件(Producer、Consumer、NameServer、Broker)的功能与交互关系;2)Topic和MessageQueue的管理机制,包括自动/手动创建、扩容缩容原则及读写队列分离设计;3)特殊Topic类型及其应用场景;4)完整的消息处理流程,从生产、存储到消费的全过程。重点阐述了Broker的消息存储架构(CommitLog+ConsumeQueue+IndexFile)和NameServer的路由管理机制,
2025-10-20 14:05:40
555
原创 RocketMQ实现原理之生产消费者
文章详细介绍了生产消费者负载均衡策略及维护路由信息,并着重介绍了生产者的类型及消息类型,消费者类型及消费模式等功能细节
2025-10-13 11:29:28
389
原创 Redis底层实现原理之数据接收同步和高可用持久化机制
文章总结了Redis在接收客户端处理流程,主从间数据同步处理,各节点的持久化机制和哨兵集群的高可用相关核心知识点
2025-09-15 11:19:46
734
原创 Redis底层实现原理之五大基础结构
文章主要介绍了Redis最基本的五大类型,并深入其C语言底层数据结构进行更详细的记录,对复杂的数据结构给出示例说明处理流程,更易理解
2025-09-04 16:01:50
1051
原创 Sentinel原理之规则管理
文章介绍了熔断限流主要使用的FlowRule和DegradeRule不同属性代表含义,以及关于规则数据源的对接和获取
2025-08-12 14:42:05
832
原创 Sentinel原理之责任链详解
文章中介绍了Sentinel责任链ProcessorSlot的几个核心Slot原理,包括NodeSelectorSlot、sterBuilderSlot、StatisticSlot、SystemSlot、FlowSlot和DegradeSlot,在此基础上额外扩展了滑动窗口统计模拟、令牌桶算法模拟和漏桶算法模拟
2025-08-07 16:09:58
1244
原创 Redis底层实现原理之订阅发布机制
文章介绍了Pub/Sub发布订阅和Redis Stream生产消费者机制,以深入浅出的方式介绍其知识点和底层原理。
2025-07-04 15:18:26
869
原创 spring-boot-maven-plugin插件打包和java -jar命令执行原理
文章简单介绍了Maven的生命周期,并分析了spring-boot-maven-plugin插件的打包原理流程及JVM对于java -jar命令的执行原理流程
2024-09-18 15:35:41
1691
2
原创 【番外】Springboot集成推荐配置及十问RocketMQ
初学rocketMq过后觉得对这个框架很熟悉了,但如果让你立马回答一些实际应用中的问题,是否能对答如流呢?深入浅出后,自己列了使用中会产生的10个疑问一一解答,并附上springboot集成rocketMq的推荐方式
2024-07-12 10:03:59
942
原创 (八)Mybatis持久化框架原理之不同Executor对比和Spring事务关系
在这篇文章中将会分析不同的Executor和SqlSession的实现原理差异,同时也会分析Mybatis和Spring的事务处理差异并比较他们之间的优先级与关系。
2024-06-06 15:27:34
479
原创 Spring中Endpoint、HasFeatures、NamedFeature和Actuator的关系及实现原理
我们经常可以在Springboot或Springcloud版本中看到Endpoint或Features等字样,但对于这些类的作用知之甚少,文章就这些功能简单分析一下实现原理。
2023-09-07 16:57:58
800
原创 阿里熔断限流框架Sentinel实现流程和动态规则数据源
本篇文章主要介绍熔断限流框架Sentinel的使用示例、组成原理和动态规则数据源的实现原理。
2023-05-09 14:46:43
1194
原创 (一)Springcloud-OpenFeign原理之集成改造原生Openfeign与简单使用
文章将会介绍Springcloud-Openfeign对原生Openfeign的改造原因及方式,最后提供简单的使用案例及扩展点分析,需要提前了原生Openfeign和Spring容器的相关原理
2023-05-06 16:27:11
861
原创 原生OpenFeign相较于传统HTTP工具的优化和原理
本篇介绍的是springcloud-openfeign的底层框架io.github.openfeign,重点不是其框架如何使用,而是介绍Feign如何基于传统HTTP工具使用方式进行抽象改进,提升其灵活性。并简单介绍一下其抽象组件及主要组件的使用时机
2023-05-05 15:40:39
2227
5
原创 JDK8使用Visual VM根据Dump文件排查OutOfMemoryError生产问题思路
介绍JDK8七种常见的Java heap space堆内存溢出等场景下的排查思路
2023-03-17 16:08:56
2619
原创 Java中性能超越各个BeanUtils的Object对象属性映射框架MapStruct常规使用方式和技巧
本文主要介绍MapStruct的基本应用和@Context+expression实现开发时常见的复杂场景,如List转List带自定义参数、List中某参数需要调用其它类的复杂处理或Map转普通Object对象的使用方式等
2023-03-14 14:23:59
2243
原创 (一)Spring-Cloud源码分析之核心流程关系及springcloud与springboot包区别(新)
很多人搞不懂springboot和spring-cloud的关系到底是什么,也不知道这两者时间有什么区别,今天简单的聊聊。2022年发了一篇Springcloud和Springboot的区别对比,但后面回看总觉得少了点东西,这次重新发个补充一下。
2023-02-23 15:16:31
1699
原创 Eureka原理浅析
本文主要整理的内容为Eureka主要功能、框架运行原理、具备哪些特殊机制、Server间的数据同步方式、Server和Client端的交互方式等
2023-02-20 16:05:19
607
原创 Apollo Config原理浅析
本文章主要用于解决对Apollo的一些疑问,如Apollo有哪些组件,整体架构是什么?,每个组件各自的关系是什么?Apollo实现高可用为什么要用Eureka?Apollo通信方式是什么等。
2023-02-20 16:02:40
1781
原创 Nacos框架服务注册发现和配置中心原理
Nacos框架融合了服务注册发现和配置中心功能,这两者之间有什么关联?服务注册发现和配置中心的实现原理各是什么?server间一致性协议如何实现?server和client又如何通信?
2023-02-17 10:55:45
1862
原创 云原生是什么?和Docker、K8s是什么关系?又带来了何种影响?希望这篇文章给自己及大家解点疑惑
现在容器化和云原生十分火爆,但如果要理解为什么这个技术在近几年突然爆火,身为传统的Springboot和Springcloud体系开发者都有很多困惑,怎么就突然这么火爆了呢?及其我们未来的出路又在何处?希望这篇文章的思考可以消除这方面的一点疑惑
2023-02-09 16:44:33
2193
原创 Zookeeper ZAB协议中FLE选举通信流程
文章将着重介绍ZAB协议第一阶段的FLE算法核心流程,最后将分析集群添加Follower和Observer等问题的运行流程和注意点。
2022-07-06 15:47:51
823
原创 (十六)Zookeeper原理源码分析之Watcher监听实现原理及关键源码解析
本篇将会从三点来解析Watcher的实现,1. 触发事件处理对象及时机;2. 触发的事件类型;3. 如何触发事件及原理
2022-03-10 18:00:02
2548
原创 (十五)Zookeeper原理源码分析之数据日志文件归档
本篇将会从三点出发分析ZK的日志归档,顺便扩展一下相关的逻辑1. 介绍两种日志文件的作用和不同点;2. 分析两种日志文件序列化和反序列化的时机(从无到有,重启读取);3. 两种日志文件的清理时机。
2022-03-10 11:09:01
2824
原创 (十四)Zookeeper原理源码分析之树形数据结构
ZK的数据结构是什么?内部是怎样构成的?且数据是如何动态变化及满足ZK的高性能查询的?本篇将会做个简单的归纳,
2022-03-07 20:13:20
2499
2
原创 (二)RocketMq与Spring的集成开发原理之传统Spring和Springboot方式
主要介绍的是传统的Spring项目和Springboot项目集成RocketMq的最佳实践,以及扩展性的简单说明一下Springboot集成的原理。
2022-01-14 16:22:31
1080
原创 (一)RocketMq与Spring的集成开发原理之RocketMq简介
本文章主要介绍的是RocketMq的一些基本概念,如消费者生产者和Broker这些的含义,并且会介绍部署时每个角色的启动交互逻辑,看完这篇文章将会对NameServer、BrokerServer、Producer和Consumer这四个主要角色之间的通信数据交互关系有个大概的了解。
2021-12-29 16:46:10
1508
原创 关于JDK线程池核心线程和非核心线程的源码思考与总结
重读源码,新的思考与总结什么时候才会执行非核心线程?JDK线程池具体是如何区分核心线程和非核心线程?核心线程真的可以一直存活吗?非核心线程又为什么只能存在一段时间?非核心线程的存活时间由什么控制?
2021-12-24 17:57:23
2059
4
原创 (一)Spring-Cloud源码分析之核心流程关系及springcloud与springboot包区别
很多人搞不懂springboot和spring-cloud的关系到底是什么,也不知道这两者时间有什么区别,今天简单的聊聊。
2021-07-16 16:30:21
1646
5
原创 (十三)Zookeeper原理源码分析之集群数据同步(广播模式)建立通信连接原理源码分析
1.前话在前面的文章已经分析过了ZK集群数据同步(广播模式)建立通信连接的流程了,本次文章便分析一下建立通信连接的源码层面逻辑。注:本篇基于ZK版本3.4.8分析的。2.建立通信相关角色及流程图数据同步建立通信的流程可以看成是古代附属王朝向中央王朝进行朝贡的流程,即各个Follower主动向Leader发送连接请求,Leader接收到各个Follower机器的请求后生成对应的处理器,这些处理器可以看成是中央王朝派遣的接待使。当然这中间肯定是要经过一系列的逻辑确定Leader机器是否是真正合格
2021-04-16 17:11:17
675
原创 (十二)Zookeeper原理源码分析之集群数据同步(广播模式)流程原理分析
目录1.前话2.Leader机器与Follower机器建立通信2.1 相关角色及交互关系2.2 建立通信交互流程图3.Leader接收到客户端的Request请求3.1 Leader机器RequestProcessor链3.2 Leader接收Request请求并同步数据4.Follower接收到客户端的Request请求4.1 Follower机器RequestProcessor链4.2 Follower接收Request请求并通过Leader同步数据5.ZK集
2021-04-13 17:41:20
703
原创 (三)Java使用奇技淫巧之使用Stream流的Lambda语法进行List转Map操作
目录1.背景2.Stream流的Lambda语法应用实例2.1 定义要操作的UserDto2.2 List转成Map2.2.1 List转成Map,>2.2.2 List转成Map>,>2.2.3 List转Map,>2.2.4 List>转Map,>2.2.5 List>转Map,>2.2.6 List>转Map,>3.性能说明1.背景在平时开发过程中难免会碰到有些时候需要将一个List转成Ma
2021-04-01 17:47:42
9419
5
原创 (二)Java使用奇技淫巧之枚举+自定义异常+接口优雅实现判断参数为空
目录1.背景2.枚举实现接口2.1 接口实现默认方法2.2 枚举类实现接口3.定义枚举接口判断参数3.1 自定义异常类3.2 定义判断参数接口3.3 定义参数枚举类4.实际使用演示1.背景平时开发的时候判断某个接口参数是否为空是实现接口健壮性最基础性的操作,可以确保在接下来的流程中哪些参数是可靠的,哪些参数是不可靠的以方便开发人员写出更简洁和安全的代码。假设判断参数的地方不统一这里一块那里一块将会导致开发人员后续维护或者开发的时候不容易判断必传参数情况。比如以
2021-03-31 19:39:47
1393
6
原创 (十一)Zookeeper原理源码分析之FLE(FastLeaderElection)算法集群选举原理流程源码解析
目录1.前话2.源码分析2.1 FastLeaderElection选举发送通知2.2 通信对的SendWorker对象监听集合并发送消息2.3 通信对的RecvWorker对象接收消息2.4 WorkerReceiver处理通信对接收到的消息2.5 FastLeaderElection对象处理集群响应消息2.6 QuorumPeer处理选举结果1.前话前面一篇已经分析过了FLE算法各个机器间创建通信结构的流程源码,即分析原理流程的时候各个机器是可以正常的发送及接收消
2021-03-31 11:12:07
486
4
原创 (十)Zookeeper原理源码分析之FLE(FastLeaderElection)算法集群构建集群内部通信对源码解析
目录1.前话2.源码分析2.1 QuorumPeer对象发起投票2.2 FastLeaderElection选举发送通知2.3 WorkerSender选择机器并发送通知2.4 QuorumCnxManager连接机器并发送消息2.5 Listener监听Socket连接1.前话在前面一篇已经分析过了FLE的原理流程以及通信结构,接下来便详细分析一下ZK集群在建立通信结构源码层面的操作流程,在进行接下来的源码通信流程前需要对这个流程有一个大概的认识,否则很容易分析到一半便
2021-03-27 22:56:09
517
原创 (九)Zookeeper原理源码分析之FLE(FastLeaderElection)算法集群选举通信原理及流程结构
目录一、集群通信结构及流程1.前话2.集群通信结构3.集群通信流程3.1 创建通信模块流程3.2 选举通信流程一、集群通信结构及流程1.前话上一篇说明了ZK集群的基本结构和重要组件,分析了在ZK集群启动时哪些重要的组件在起作用,这一篇将会续着上一篇往下开始分析ZK集群选举流程,来分析选举细节、选举流程、机器间如何完成交互通信的以及启动流程中的那些组件在其中起到何种作用。简单来说,便是分析上篇文章说的五个要点中的第二个和第三个要点。至于ZK集群的数据同步放到下篇文章再来分析
2021-03-17 23:44:48
809
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅