分布式事务:在分布式系统中一次操作需要由多个服务协同完成,这种由不同的服务之间通过网络协同完成的事务称为分布式事务 一、2PC: 2PC,两阶段提交,将事务的提交过程分为资源准备和资源提交两个阶段,并且由事务协调者来协调所有事务参与者,如果准备阶段所有事务参与者都预留资源成功,则进行第二阶段的资源提
Seata是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata将为用户提供了AT、TCC、SAGA和XA事务模式,为用户打造一站式的分布式解决方案。 1.1 Seata的三大角色 在 Seata 的架构中,一共有三个角色: TC (Transaction Coord
Paxos 有点类似前面说的 2PC,3PC,但比这两种算法更加完善。在很多多大厂都得到了工程实践,比如阿里的 OceanBase 的 分布式数据库, Google 的 chubby 分布式锁 。 Paxos算法是什么? Paxos 算法是 基于消息传递 且具有 高效容错特性 的一致性算法,目前公认
Raft算法是什么? Raft 也是一个 一致性算法,和 Paxos 目标相同。但它还有另一个名字 - 易于理解的一致性算法。Paxos 和 Raft 都是为了实现 一致性 产生的。这个过程如同选举一样,参选者 需要说服 大多数选民 (Server) 投票给他,一旦选定后就跟随其操作。Paxos 和
什么是幂等性? 幂等性是一个数学概念,用在接口上:用在接口上就可以理解为:同一个接口,多次发出同一个请求,请求的结果是一致的。 简单说,就是多次调用如一次。 什么是幂等性问题? 在系统的运行中,可能会出现这样的问题: 用户在填写某些form表单时,保存按钮不小心快速点了两次,表中竟然产生了两条重复的
计数器 计数器比较简单粗暴,比如我们要限制1s能够通过的请求数,实现的思路就是从第一个请求进来开始计时,在接下来的1s内,每个请求进来请求数就+1,超过最大请求数的请求会被拒绝,等到1s结束后计数清零,重新开始计数。 这种方式有个很大的弊端:比如前10ms已经通过了最大的请求数,那么后面的990ms
Dubbo的SPI(Service Provider Interface)机制是一种扩展点加载机制,用于在运行时动态加载、替换或扩展框架的组件实现。SPI机制使得Dubbo的各个模块可以灵活地被扩展和定制,从而实现更好的可扩展性和灵活性。 在Dubbo中,SPI机制的核心思想是将接口与实现解耦,通过
Dubbo中的服务治理是一种管理和维护分布式服务的方法和工具,旨在解决分布式系统中服务的注册、发现、路由、负载均衡、容错等问题,以保障系统的可用性、性能和稳定性。服务治理通过一系列的手段和策略,帮助开发者更好地管理和监控分布式系统中的服务,确保系统能够按预期运行。 服务治理解决的问题包括: 服务注册
Dubbo的线程模型是一种用于处理请求和响应的并发机制,用于管理并调度消费者与提供者之间的通信和处理。Dubbo采用了一种基于线程池和异步调用的线程模型,以提高系统的并发性能和资源利用率。 Dubbo的线程模型主要包括以下几个关键组件: Acceptor线程池: 用于处理消费者的请求连接,建立TCP