写给工程师的笔记与面试指北
聚焦分布式架构、中间件原理、线上排查与高频面试题,沉淀可复用的工程实践。
Kafka如何保证消息的顺序性
Kafka如何保证消息的顺序性 核心原理 Kafka中消息顺序性依赖于其分区(Partition)内顺序性。 每个分区的消息都是按照先后顺序排列的,如上图一样。 在单个Kafka分区中,消息的顺序性得到了严格的保证。新产生的消息总是附加到分区日志的末端,消费者按照消息在分区中的物理顺序进行消费。如下
Elasticsearch-实现原理
一、Elasticsearch 与传统数据库对比 1.1 关键点概览 文档模型(Document-Oriented) - Elasticsearch 视每条记录为一个文档(JSON 格式)。 - 一个索引(Index)下可包含多个文档,索引底层又被分为一个或多个分片(Shard),每个分片是一个独立
技术-数据结构
二叉树 特点 节点结构: - 每个节点最多有两个子节点,分别称为左子节点和右子节点。 层次关系: - 树的层次从根节点开始,根节点位于第 1 层,子节点位于其父节点的下一层。 - 每一层的节点数最多为 $$2^{\text{层号}-1}$$(例如,第 1 层最多有 1 个节点,第 2 层最多有 2
限流的几种方式
限流的几种方式 计数器算法 :将时间周期划分为固定大小的窗口(如每分钟、每小时),并在每个窗口内统计请求的数量。当窗口内的请求数达到预设的阈值时,后续请求将被限制。时间窗口结束后,计数器清零。 优点:实现简单,易于理解。 缺点:在窗口切换时刻可能会有突刺流量问题,即在窗口结束时会有短暂的大量请求被允
分布式锁的方案总结
通常情况下,我们一般会选择基于 Redis 或者 ZooKeeper 实现分布式锁,Redis 用的要更多一点,我这里也先以 Redis 为例介绍分布式锁的实现。 基于 Redis 实现分布式锁 如何基于 Redis 实现一个最简易的分布式锁? 不论是本地锁还是分布式锁,核心都在于“互斥”。 在 R
JDBC-sql
数据库核心概念详解 1. SQL语言基础 1.1 DDL (数据定义语言) CREATE: 创建数据库对象 sql CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) NOT NULL, email
LangChain vs 直接 API 调用对比指南
LangChain vs 直接 API 调用对比指南 1. 基础架构对比 系统架构图
基础!看你了解吗!动态代理实现两种方式
Java动态代理 JDK 动态代理是 Java 提供的一种机制,它允许在运行时创建一个代理对象,而不需要为每个被代理的类手动编写代理类。使用 JDK 动态代理的关键是通过 java.lang.reflect.Proxy 类和 InvocationHandler 接口来实现。以下是 JDK 动态代理的
使用 Spring Boot 和 Redisson 实现 Redis Sorted Set (ZSET) 排行榜
在构建高性能、实时更新的排行榜(如游戏积分榜、用户活跃度排名等)时,Redis 的 Sorted Set(ZSET)数据结构是一个理想的选择。结合 Redisson 作为 Redis 客户端,并在 Spring Boot 环境中集成,可以高效地实现这一功能。本文将详细介绍如何在 Spring Boo