Plantre Plantre
首页
后端
技术
硬件
  • 前端文章

    • HTML
    • CSS
    • JavaScript
  • 技术

    • 技术文档
    • GitHub技巧
    • Nodejs
    • 博客搭建
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

plantre

一个后端开发者
首页
后端
技术
硬件
  • 前端文章

    • HTML
    • CSS
    • JavaScript
  • 技术

    • 技术文档
    • GitHub技巧
    • Nodejs
    • 博客搭建
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 计算机组成原理

  • 操作系统

  • 计算机网络

  • 设计模式

  • Java

  • Spring

  • SpringCloud

  • MySQL

  • Redis

  • 分布式

    • 理论等

    • 分布式算法

      • 什么是拜占庭将军问题
      • 一共有哪些分布式算法
      • 主流分布式系统的核心分布式算法
      • Java后端开发中常见的分布式组件及其核心分布式算法
        • 实际搭建节点数
        • 节点和集群的关系
        • 非拜占庭容错算法和拜占庭容错算法各有哪些
      • 分布式事务

      • 分布式锁

      • SpringCloud

    • Zookeeper

    • Dubbo

    • Kafka

    • 数据结构

    • 算法

    • OJ

    • 从道家哲学看计算机?
    • 后端
    • 分布式
    • 分布式算法
    plantre
    2025-06-19
    目录

    Java后端开发中常见的分布式组件及其核心分布式算法

    以下是Java后端开发中常见的分布式组件及其核心分布式算法的系统梳理,结合功能场景与算法实现进行说明:


    # 🧩 一、分布式协调与配置管理组件

    1. Zookeeper

      • 核心算法:ZAB协议(类Paxos的变种)
        • 通过崩溃恢复(选主)和原子广播(写操作)实现强一致性
      • 功能:分布式锁、配置中心、集群选主(如Kafka早期元数据管理)
      • 数据模型:树形Znode结构 + Watcher监听机制
    2. Nacos

      • 核心算法:
        • CP模式:Raft算法(配置管理)
        • AP模式:Distro协议(Gossip变种,服务发现)
      • 功能:动态服务发现、配置热更新(Spring Cloud Alibaba核心组件)
    3. Consul

      • 核心算法:Raft算法(服务注册与KV存储) + Gossip协议(跨节点健康检查)
      • 功能:多数据中心支持、服务网格集成(HashiCorp生态)

    # 📨 二、消息与事件驱动组件

    1. Kafka

      • 核心算法:
        • KRaft模式:自研Raft变种(取代Zookeeper的元数据管理)
        • ISR机制(In-Sync Replicas):基于副本同步列表的强一致性写入
      • 分区分配算法:RangeAssignor/RoundRobinAssignor(消费者负载均衡)
    2. RabbitMQ

      • 核心协议:AMQP高级消息队列协议
      • 路由算法:
        • 直连(Direct)、主题(Topic)、广播(Fanout)路由规则
        • 死信队列(DLX)实现消息重试与延迟投递

    # 💾 三、数据存储与处理组件

    1. Redis Cluster

      • 核心算法:
        • 哈希槽分区(16384 slots):Slot = CRC16(key) % 16384
        • Gossip协议:节点状态同步与故障检测
      • 高可用:主从复制 + Raft-like选举(主节点故障切换)
    2. Elasticsearch

      • 核心算法:
        • PacificA算法:主分片同步写副本,基于版本号冲突检测
        • 一致性哈希:数据分片(Shard)定位
      • 分布式检索:Scatter-Gather模型合并分片结果
    3. Apache Cassandra

      • 核心算法:
        • Gossip协议:集群节点状态同步
        • 一致性级别:QUORUM/LOCAL_QUORUM(可调一致性)

    # ⚙️ 四、任务调度与事务管理组件

    1. 分布式任务调度(如XXL-JOB)

      • 核心算法:
        • 数据库悲观锁:抢占任务分片(如SELECT ... FOR UPDATE)
        • 时间轮算法(Time Wheel):高效触发定时任务
    2. Seata(分布式事务)

      • 核心算法:
        • AT模式:二阶段提交(2PC)的优化版,基于Undo Log回滚
        • TCC模式:Try-Confirm-Cancel业务补偿
        • Saga模式:长事务拆分为子事务链 + 逆向补偿

    # 🔍 五、其他关键组件

    1. Hazelcast

      • 核心算法:Paxos协议(分布式锁) + CRDTs(无冲突复制数据类型)
      • 功能:内存网格(In-Memory Data Grid),替代分布式缓存
    2. Apache ShardingSphere

      • 核心算法:
        • 分库分表路由:哈希取模/范围分片
        • 分布式主键:雪花算法(Snowflake)

    # 📊 六、组件与算法对照表

    组件 类型 核心分布式算法 典型场景
    Zookeeper 协调服务 ZAB协议(类Paxos) 分布式锁、配置中心
    Nacos 服务发现/配置中心 Raft(CP模式)、Distro(AP模式) 微服务动态治理
    Kafka 消息队列 KRaft(Raft变种)、ISR机制 高吞吐日志流处理
    Redis Cluster 分布式缓存 哈希槽分片、Gossip协议 高性能缓存、会话存储
    Elasticsearch 搜索分析引擎 PacificA算法、一致性哈希 实时日志分析、全文检索
    Seata 分布式事务 TCC、SAGA、AT(二阶段提交优化) 跨服务事务一致性
    Hazelcast 内存数据网格 Paxos、CRDTs 分布式计算、内存缓存
    Apache Cassandra 分布式数据库 Gossip协议、可调一致性模型 高写入负载的时序数据存储

    # 💎 总结

    • 算法选择逻辑:
      • 强一致性场景(如金融交易):优先选用Raft/Paxos(Zookeeper、Consul)
      • 高可用与最终一致(如服务发现):Gossip协议(Eureka、Redis Cluster)
      • 数据分片需求:哈希槽(Redis)、一致性哈希(Elasticsearch)
    • 开发建议:
      • 微服务治理选Nacos(AP/CP可选),消息总线用Kafka(高吞吐),缓存用Redis Cluster(自动分片),搜索用ES(近实时分析)。
      • 分布式事务根据业务复杂度选择:简单场景用Seata AT模式,复杂补偿逻辑用TCC/SAGA。
    编辑 (opens new window)
    上次更新: 2025/06/24, 00:41:57
    主流分布式系统的核心分布式算法
    实际搭建节点数

    ← 主流分布式系统的核心分布式算法 实际搭建节点数→

    最近更新
    01
    集成loki
    07-04
    02
    TCP的ESTABLISHED是什么意思
    06-24
    03
    安装1panel
    06-24
    更多文章>
    Theme by Vdoing | Copyright © 2025-2025 plantre | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式