自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 分布式系统设计(6):分布式系统的通信方式(下)

RocketMQ是阿里开源的高性能消息队列,主要用于服务间的远程异步通信。适用于“发布-订阅”异步模型,支持异步通信、削峰填谷、最终一致性等功能。削峰填谷:在高峰流量时通过消息队列缓冲,平滑系统负载。

2025-05-02 20:51:13 222

原创 分布式系统设计(9):分布式搜索引擎之Elasticsearch

Elasticsearch 是一个基于 Apache Lucene 构建的开源分布式搜索引擎全文检索:支持分词、相关性评分、高亮、同义词等搜索特性;分布式架构:天然支持集群、分片、复制机制;近实时(NRT):数据写入后几乎立即可搜索;:操作友好,支持 JSON 格式交互;高扩展性:节点可动态加入/退出,支持水平扩展;多租户支持:一个集群可管理多个独立索引。简言之,ES 是 “搜索界的 MySQL”,但远不止搜索引擎,还可视为 NoSQL 数据库、日志平台、推荐引擎等的基础设施。

2025-05-02 20:50:31 2289

原创 分布式系统设计(8):分布式链路追踪详解

全自动:通过框架(如 Spring Cloud Sleuth)自动添加追踪逻辑(Controller 入口、RestTemplate / Feign、Kafka / RabbitMQ、异步线程池);2.创建Span(即埋点):所有服务生成一个span(调用片段),记录:开始时间、结束时间、服务名、方法名、是否异常等。(3)系统可观测性增强:更好地理解系统中请求全貌,即服务间的调用关系。(4)支持SLA分析、容量预估:根据调用链数据做流量分析、依赖分析等。

2025-05-02 20:48:09 679

原创 分布式系统设计(7):分布式锁的实现方式

(1)性能:Redis > Zookeeper > MySQL(2)一致性:Zookeeper = MySQL > Redis(3)成本:Zookeeper > Redis > MySQL用 Redis 锁,推荐 Redisson,封装好,支持 WatchDog 自动续约;高可靠性、公平需求可以考虑用 Zookeeper;不推荐用 MySQL 除非条件受限。

2025-05-01 12:26:07 772

原创 分布式系统设计(6):分布式系统的通信方式(上)

而国内互联网行业的分布式系统同步和异步通信框架大多用的是Dubbo和RocketMq(国际主流目前是gRPC和Kafka、RabbitMQ),这里只讲述国内主流的通信方式,为啥选它俩,是因为它俩撑过了双十一的超高流量洗礼,依然经受得起挑战,此外社区活跃、文档完善、兼容Spring Boot也是选择理由。它们在分布式架构中通常是配合使用的。根据系统需求不同,通信方式可以分为同步通信(Dubbo、gRPC、Http)和异步通信(消息队列RoketMq、Kafka)。在这样的系统中,服务之间的通信变得尤为重要。

2025-04-30 00:48:57 638

原创 分布式系统设计(5):常见分布式ID生成方案

(1)原理:基于计算机硬件信息(即MAC地址,出厂烧录在网卡芯片中的48位地址,如00-1A-2B-3C-4D-5E)和时间戳,通过特定算法生成的全球唯一ID(如550e8400-e29b-41d4-a716-446655440000)。(IO连接数、CPU达到瓶颈),查询和索引性能大幅度下降,这时需数据库水平拆分(Sharding),而每个库ID都是独立增长,可能导致ID不唯一。(3)适用场景:高并发场景下生成全局ID(秒杀订单号、日志追踪ID、接口流水号等),同时不想依赖外部服务(无中心化依赖)。

2025-04-29 19:20:14 1526

原创 分布式系统设计(4):四种常用分布式事务(下)

TCC(Try-Confirm-Cancel)模式是一种分布式事务解决方案,它将“提交/回滚”事务过程拆分成三个阶段,特指。

2025-04-28 22:33:25 615

原创 分布式系统设计(4):四种常用分布式事务(上)

在上一篇文章中,介绍了分布式事务的基本概念及其作用,并简要讲解了两种不常用的分布式事务协议:二阶段提交(2PC)和三阶段提交(3PC)。

2025-04-28 17:24:28 1408

原创 分布式系统设计(3):分布式事务之两阶段/三阶段提交

协调者Coordinator给所有参与者Participants发送Prepare请求,让各个参与者执行本地事务操作,但是先不提交(只写日志/锁定数据),然后返回成功(Ready)或失败(Abort)。如下单系统,扣库存在库存服务节点,扣钱在支付服务节点,,订单写入在订单服务节点,这三步要么全部成功,要么全部失败。两阶段提交(2PC)- Coordinator控制所有参与者,第一阶段准备,第二阶段提交或回滚。,参与者不知道该提交还是回滚,导致锁住资源,系统资源卡死),提出了3PC提交理论。

2025-04-27 23:05:20 502

原创 分布式系统设计(2):简述两种常用的一致性协议算法

算法存在三种角色: Leader(首领,负责写操作和广播操作),Follower(跟随者,听从领导的广播并执行相应的操作,以及监听领导的心跳),Candidate(候选人,跟随者接收不到领导心跳时,在随机超时时间后发起竞选)和paxos算法相同,也是分布式一致性协议,Rarft算法通过领导选举,日志复制等机制,实现更易于理解的一致性协议。特点 - 因为需要多数节点表同意,所以只能允许少量节点宕机,容错性强,但是复杂性高,两个阶段的存在使得性能一般。如果任期相等,再比索引,索引大才更新。

2025-04-27 15:47:56 458

原创 分布式系统设计(1):简述CAP和BASE理论

分布式系统必须保分区容错性(因为业务系统正常使用过程中,网络异常一定会发生概率99.99%,所以需要保证分区容错性),只能在可用性和一致性中二选一。用BASE理论来设计一个系统的话,需要允许系统在短时间内数据不一致,以换取高可用性,且能保证数据最终是一致的。CAP理论指出,在分布式系统中,无法同时满足一致性(C),可用性(A),分区容错性(P),最多只能满足其中两项。CP系统(放弃可用性)- 如ZK,在网络分区(节点故障)时,Zookeeper会选择不响应部分请求或返回错误信息,以保证一致性。

2025-04-27 15:12:58 319

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除