- 博客(7)
- 收藏
- 关注
原创 jdbc通信原理
MySQL:实际上并没有真正的流式查询,其“流式”是通过游标模拟的(服务器端仍需物化,但客户端分批拉取)。JDBC驱动执行read()系统调用,从该内核缓冲区读取数据到驱动内部缓冲区(用户空间,可选),再复制到JVM堆内存中的对象(如ResultSet的行缓存)。PostgreSQL:设置fetchSize后,使用协议级别的“门户”实现真正的流式,服务器无状态,数据边查边发。MySQL服务器执行查询,将结果集数据从存储引擎读出,放入服务器内核的发送缓冲区(位于操作系统内核空间)。
2026-03-16 22:39:48
214
原创 雪花算法结构
它生成的 ID 是一个 64 位的 long 型整数,由时间戳、机器标识和序列号组成,因此 ID 整体呈递增趋势,非常适合作为数据库主键。在分布式部署中,必须确保每个节点的机器ID(包括数据中心ID)全局唯一,否则不同节点可能生成相同的 ID,导致冲突。依赖系统时钟:若系统时钟发生回拨,可能导致 ID 重复或冲突。高吞吐:单节点每秒可生成数百万个 ID,满足高并发场景。12位:序列号(每毫秒每节点可生成4096个ID)1位:符号位(固定为0,保证ID为正数)41位:时间戳(毫秒级,可使用约69年)
2026-03-05 21:25:07
27
原创 分布式,单体项目,微服务到底是什么意思一篇文章帮你搞懂
集群部署:将这个单体应用复制多份,部署在多台机器上,前面加负载均衡。此时每台机器上都是一个独立的进程,但每个进程都包含完整的业务模块,模块之间没有拆分。对外表现得像是一个整体。一个单体应用(包含用户和购票功能的代码打包在一起)被部署在3台机器上,每台机器运行相同的完整应用。进程视角:所有模块(用户、购票等)被打包在一起,运行在同一个进程中。这两个服务运行在不同的进程中,通过网络通信(如HTTP)协作。用户服务(负责登录、注册)独立部署在一台机器(或容器)上。单机部署:一个进程运行在一台机器上(经典单体)。
2026-03-05 18:58:53
86
原创 java中的集合
Java 集合核心分为单列(Collection) 和双列(Map),核心区别是存储维度(单个元素 vs 键值对);List(有序、可重复、有索引)和 Set(无序、不可重复、无索引)是单列集合的两大分支,HashMap/LinkedHashMap/TreeMap 是双列集合的核心实现;单列集合选型:需要可重复元素时选 List(读多写少用 ArrayList,写多读少用 LinkedList);
2026-01-24 19:23:26
1101
原创 java中的数据结构
1.数组vs链表:数组适合快速随机访问,链表适合频繁增删;2.栈/队列:栈是FILO(先进后出),队列是FIFO(先进先出),分贝适用于“后进先处理” 和 “先进先处理”场景3.核心效率:哈希理想情况下增删查都是o(1),是日常开发中最常用的高效数据结构;二叉树(BST)在平衡状态下增删查效率平均是O(logn),适合既要求数据有序,又需要快速增删查处理的场景。
2026-01-24 09:32:02
654
原创 工厂设计模式
工厂模式生成的是一个具体类,抽象工厂模式是一个类族。每个产品都需要一个具体创建者,类可能过多。增加新产品类型困难(需要修改所有工厂)符合开闭原则,容易扩展新产品。符合开闭原则(对产品族扩展)需要提前定义好产品结构。客户端与具体产品解耦。
2026-01-23 07:13:51
113
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅