分布式系统-base理论
摘要:在分布式系统领域,BASE理论是对CAP定理的延伸和补充,由eBay架构师Dan Pritchett于2008年提出。它强调在分布式场景下,通过牺牲强一致性(Consistency)和可用性(Availability)的部分特性,换取系统的最终一致性(Eventual Consistency)、柔性
阅读全文
posted @
2025-05-30 12:54
斜月三星一太阳
阅读(72)
推荐(0)
怎么理解高并发
摘要:高并发是计算机系统设计中重要的性能指标,通常指系统在同一时间处理大量并发请求的能力。它是衡量系统吞吐量、稳定性和扩展性的核心维度之一,常见于互联网服务(如电商秒杀、社交平台、实时数据处理等场景)。 一、核心概念解析 并发与并行的区别 并发(Concurrency):指多个请求在同一时间段内交替处理(
阅读全文
posted @
2025-05-30 10:57
斜月三星一太阳
阅读(78)
推荐(0)
怎么理解高可用
摘要:“高可用(High Availability,简称HA)”是分布式系统设计中的核心目标之一,旨在确保系统在面对硬件故障、软件错误、网络中断、流量峰值等异常情况时,仍能持续、稳定地提供服务,最大限度减少停机时间和服务不可用的影响。理解高可用需要从 目标定义、技术实现、衡量标准和工程实践 等多个维度切入
阅读全文
posted @
2025-05-30 10:49
斜月三星一太阳
阅读(195)
推荐(0)
怎么理解高性能
摘要:“高性能”是一个相对抽象但应用广泛的概念,通常指系统、程序或设备在特定场景下能够高效、稳定地完成任务,同时满足 速度快、资源利用率高、响应及时、可靠性强 等目标。理解高性能需要从技术维度、业务需求和工程实践等多个层面切入,以下是具体解析: 一、高性能的核心指标 高性能的衡量需结合具体场景,但通常包含
阅读全文
posted @
2025-05-30 10:46
斜月三星一太阳
阅读(109)
推荐(0)
分布式事务-两阶段提交
摘要:在分布式系统里,两阶段提交(Two-Phase Commit,2PC)是一种经典的实现强一致性的算法。它能保证在多个参与者的事务操作中,所有节点要么全部成功提交事务,要么全部回滚,从而避免数据不一致的情况。下面将详细剖析两阶段提交的实现机制、流程以及其中的关键点。 一、两阶段提交的基本原理 两阶段提
阅读全文
posted @
2025-05-27 22:30
斜月三星一太阳
阅读(88)
推荐(0)
分布式系统-CAP-怎么理解可用性
摘要:在分布式系统中,可用性(Availability)是衡量系统服务稳定性和用户体验的核心指标之一。它与一致性(Consistency)、分区容错性(Partition Tolerance)共同构成了CAP定理的三要素。理解可用性需要从定义、核心内涵、实现方式以及与其他特性的权衡等方面展开,以下是详细解
阅读全文
posted @
2025-05-26 22:44
斜月三星一太阳
阅读(60)
推荐(0)
分布式系统-CAP-怎么理解分区容错性
摘要:在分布式系统领域,CAP定理是一个至关重要的理论,它指出分布式系统无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三个基本特性,只能在这三者中根据实际需求进行权衡取舍。下面将深入剖析CAP定理中的分区容错性,涵盖
阅读全文
posted @
2025-05-26 22:41
斜月三星一太阳
阅读(198)
推荐(0)
分布式系统-怎么理解网络分区异常
摘要:网络分区异常(Network Partition)是分布式系统中常见的故障场景,指由于网络设备故障、链路中断或高延迟等原因,导致集群内部分节点与其他节点失去通信,形成多个无法相互通信的子网络(分区)。每个分区内的节点会基于本地状态独立决策,可能引发数据不一致、脑裂(Split-Brain)等问题。以
阅读全文
posted @
2025-05-26 22:30
斜月三星一太阳
阅读(91)
推荐(0)
分布式系统-CAP-怎么理解故障恢复后的一致性
摘要:故障恢复后的一致性是指分布式系统(如Redis集群、数据库集群)在经历节点故障、网络分区等异常后,通过重启、替换节点或修复网络等操作恢复正常运行时,系统内各节点的数据需重新达到一致状态,避免因故障残留导致的数据矛盾、丢失或版本冲突。 一、故障恢复后一致性问题的产生原因 1. 数据未完全同步导致的丢失
阅读全文
posted @
2025-05-26 22:25
斜月三星一太阳
阅读(84)
推荐(0)
分布式系统-CAP-什么是数据一致性
摘要:数据一致性(Data Consistency)是分布式系统、数据库领域的核心概念之一,用于描述数据在不同状态、不同节点或不同副本之间的一致性状态,确保数据在各种操作(如读写、更新、故障恢复)中保持逻辑上的统一和可靠。 一、数据一致性的核心内涵 数据一致性的本质是确保数据在多个副本或节点之间的状态符合
阅读全文
posted @
2025-05-26 22:20
斜月三星一太阳
阅读(141)
推荐(0)
redis集群在部分节点故障后如何恢复数据一致性
摘要:在Redis集群部分节点故障后,恢复数据一致性需要结合自动故障转移机制和手动干预措施,具体取决于故障类型(如主节点故障、从节点故障、主从节点组故障等)。以下是不同场景下的一致性恢复策略: 一、主节点故障(从节点正常) 场景:单个主节点挂掉,但其从节点正常运行。 恢复机制: 1. 自动故障转移(Fai
阅读全文
posted @
2025-05-26 22:16
斜月三星一太阳
阅读(270)
推荐(0)
redis节点挂掉还能提供服务吗
摘要:一个3主3从的redis集群,如果一个主节点和它对应的从节点同时挂掉了,那么这个redis集群还能对外提供服务吗? 在一个3主3从的Redis集群中(每个主节点对应一个从节点),若某个主节点及其对应的从节点同时挂掉,集群的可用性取决于以下关键因素: 1. Redis集群的基本机制 Redis集群采用
阅读全文
posted @
2025-05-26 22:15
斜月三星一太阳
阅读(188)
推荐(0)
中间件
摘要:中间件(Middleware) 是位于操作系统、数据库与应用程序之间的软件层,用于连接不同组件、系统或应用,解决分布式系统中异构环境的通信、数据交互、资源共享等问题,简化应用开发与维护。 核心功能与作用 通信桥梁 连接不同技术架构的应用(如Java与Python应用),支持跨语言、跨平台通信(如HT
阅读全文
posted @
2025-05-26 18:56
斜月三星一太阳
阅读(115)
推荐(0)
mybatis中的事务操作
摘要:MyBatis 会深度参与事务的相关操作,其事务管理机制可分为 独立使用场景(直接管理JDBC事务)和 与Spring集成场景(依赖Spring事务管理器)两种模式。以下结合源码和实际使用场景详细说明: 一、独立使用MyBatis时的事务管理 在未与Spring集成的独立项目中,MyBatis 通过
阅读全文
posted @
2025-05-26 12:23
斜月三星一太阳
阅读(210)
推荐(0)
java基础-jvm内存模型
摘要:JVM(Java Virtual Machine,Java虚拟机)的内存模型(运行时数据区域)是其核心组成部分,用于管理程序运行过程中的各类数据。根据《Java虚拟机规范》,JVM的内存结构可分为以下6大区域(部分区域为线程私有,部分为线程共享): 一、程序计数器(Program Counter R
阅读全文
posted @
2025-05-23 14:06
斜月三星一太阳
阅读(42)
推荐(0)
设计模式
摘要:以下是常用的23种设计模式的分类统计和应用场景解释: 创建型模式(5种) 模式名称 核心思想 应用场景 单例模式 确保类只有一个实例 配置管理、线程池、数据库连接池等需要全局唯一实例的场景。 工厂方法模式 定义创建对象的接口 不同条件下创建不同类型的对象,如游戏中根据关卡创建不同敌人。 抽象工厂模式
阅读全文
posted @
2025-05-13 15:48
斜月三星一太阳
阅读(134)
推荐(0)
Raft协议 VS Gossip协议
摘要:Gossip 协议和 Raft 协议是分布式系统中解决不同问题的核心机制,二者在设计目标、核心机制、一致性模型、应用场景等方面存在显著差异,具体对比如下: 一、设计目标与核心定位 维度 Gossip 协议 Raft 协议 核心目标 实现最终一致性的信息传播,确保节点间状态(如成员关系、配置变更)最终
阅读全文
posted @
2025-05-13 00:05
斜月三星一太阳
阅读(130)
推荐(0)
redis集群中的一致性
摘要:在 Redis 集群(如 Redis Cluster)中,一致性主要指的是主从节点之间的数据一致性,而非不同主节点之间的数据一致性。这一结论需结合 Redis 集群的架构设计和数据分布逻辑来理解: 一、不同主节点之间:无直接数据一致性需求 1. 数据分片架构 Redis Cluster 采用 哈希槽
阅读全文
posted @
2025-05-12 23:58
斜月三星一太阳
阅读(180)
推荐(0)
分布式系统中的一致性协议
摘要:在分布式系统中,一致性协议用于确保多个副本或节点之间的数据一致性,根据一致性强弱和适用场景,主要分为以下几类: 一、强一致性协议(线性一致性/严格一致性) 1. 两阶段提交协议(Two-Phase Commit, 2PC) 核心思想:通过协调者(Coordinator)和参与者(Participan
阅读全文
posted @
2025-05-12 23:34
斜月三星一太阳
阅读(147)
推荐(0)
零拷贝
摘要:零拷贝(Zero-Copy)技术详解:从原理到实现与应用 一、零拷贝的核心定义与目标 零拷贝 是一种通过操作系统内核优化,减少数据在用户空间(User Space)与内核空间(Kernel Space)之间 冗余拷贝 的技术,甚至完全避免不必要的CPU数据搬运,从而显著提升数据传输效率、降低CPU占
阅读全文
posted @
2025-05-12 23:22
斜月三星一太阳
阅读(148)
推荐(0)
redis单线程为什么这么快
摘要:Redis 作为单线程模型的高性能键值存储系统,其“快”的本质源于对 内存操作特性、IO 模型、数据结构、算法设计 等多方面的深度优化。以下从技术实现细节展开,详细解释其高性能的核心原因: 一、单线程的核心优势:避免线程上下文切换与锁竞争 1. 无线程切换开销 传统多线程的痛点:多线程模型中,线程上
阅读全文
posted @
2025-05-12 23:15
斜月三星一太阳
阅读(153)
推荐(0)
SPI机制
摘要:SPI是Service Provider Interface的缩写,是一种服务提供接口机制,下面从定义、作用、使用场景等方面为你详细介绍: 定义 SPI是一种基于接口的编程范式,它允许第三方实现或扩展软件系统的功能。在SPI机制中,服务提供者(通常是第三方开发者)实现由框架或系统定义的特定接口,而服
阅读全文
posted @
2025-05-07 23:00
斜月三星一太阳
阅读(53)
推荐(0)
Java的NIO将非阻塞I/O和多路复用机制相结合
摘要:Java的NIO通过以下方式将非阻塞I/O和多路复用机制相结合: 通道(Channel)与非阻塞模式:在NIO中,所有的I/O操作都是通过通道(Channel)进行的。通道类似于传统I/O中的流,但它可以被设置为非阻塞模式。在非阻塞模式下,当执行I/O操作时,如果数据尚未准备好,操作会立即返回,而不
阅读全文
posted @
2025-05-07 22:40
斜月三星一太阳
阅读(16)
推荐(0)
多路复用I/O和非阻塞型I/O的区别
摘要:多路复用I/O和非阻塞型I/O有以下区别: 概念侧重点 多路复用I/O:重点在于通过一种机制(如选择器),能同时监听多个文件描述符或I/O通道的状态变化,从而让一个线程可以处理多个I/O操作,实现对多个I/O源的复用。 非阻塞型I/O:强调的是在执行I/O操作时,不会让线程被阻塞。线程在发起I/O请
阅读全文
posted @
2025-05-07 22:40
斜月三星一太阳
阅读(39)
推荐(0)
常见的I/O模型
摘要:常见的I/O模型有阻塞式I/O、非阻塞式I/O、多路复用I/O、信号驱动式I/O和异步I/O,下面为你介绍其原理、优缺点及适用场景: 阻塞式I/O 原理:在进行I/O操作时,线程会被阻塞,直到操作完成。例如,在读取网络数据时,线程会一直等待数据到达,在数据读取完成之前,线程无法执行其他任务。 优点:
阅读全文
posted @
2025-05-07 22:31
斜月三星一太阳
阅读(18)
推荐(0)
b+树某些情况下表现会比较劣势,说一下哪些情况会比较劣势
摘要:B+树是一种常见的用于数据库索引和文件系统的树形数据结构,在一些情况下会存在性能劣势,以下是具体分析: 范围查询的边界问题:B+树在范围查询上通常表现良好,但在处理一些特殊的边界情况时可能会出现额外的开销。例如,当查询范围恰好跨越多个节点的边界时,需要从多个节点中获取数据,这可能导致较多的磁盘I/O
阅读全文
posted @
2025-05-02 23:43
斜月三星一太阳
阅读(43)
推荐(0)
Threadlocal扩容或者清理的逻辑是怎么样的
摘要:ThreadLocal 是 Java 中用于提供线程局部变量的类,它内部使用 ThreadLocalMap 来存储数据。下面详细介绍 ThreadLocal 的扩容和清理逻辑。 ThreadLocalMap 数据结构 ThreadLocalMap 是 ThreadLocal 的一个静态内部类,它使用
阅读全文
posted @
2025-05-02 23:41
斜月三星一太阳
阅读(76)
推荐(0)
jvm层面是如何实现多态的,比如我调用了父类的对象jvm是如何知道我调用的是子类的方法
摘要:在 JVM 层面,多态主要通过动态绑定(Dynamic Binding)和方法表(Method Table)机制来实现,下面详细介绍 JVM 是如何确定调用子类方法的。 多态的基础:继承与重写 在 Java 里,多态依赖于继承和方法重写。你可以创建一个父类类型的引用变量,不过它能指向子类的对象。当调
阅读全文
posted @
2025-05-02 23:38
斜月三星一太阳
阅读(60)
推荐(0)
idea执行报错UnsupportedClassVersionError
摘要:记一次比较奇怪的报错吧。 先说现象,使用Trae生成了一个springboot项目,但是使用idea打开后发现jdk的版本生成的是16的,于是让Trae给改成了1.8的(改了spring-boot-starter-parent的版本,以及其他jdk版本相关的属性)。之后写了一个main方法,运行就开
阅读全文
posted @
2025-05-02 23:18
斜月三星一太阳
阅读(32)
推荐(0)