RPC远程服务调用

总结RPC远程服务调用相关的知识点 RPC远程服务调用是分布式架构的基础,无轮微服务设计上层如何发展,讨论服务治理都绕不开远程服务调用,那么如何理解RPC、有哪些常见的RPC框架,实现一款RPC框架需要哪些技术呢? 如何理解RPCRPC(Remote Procedure Call)是一种进程间通信方式,百科给出的...

分布式锁的正确实现方式

如何使用Redis快速实现分布锁分布式锁有很多种解决方案,前面简单介绍过,Redis可以通过set key方式来实现分布式锁,但实际情况要更加复杂,比如如何确保临近资源的串行执行,如何及时释放,都是需要额外考虑的。 分布式锁的特性 一般来说,生产环境可用的分布式所需要满足以下几点: 互斥性:互斥性是锁的基本特...

什么是分布式锁及其应用场景

分布式锁有哪些应用场景和实现?电商网站都会遇到秒杀,特价之类的活动,大促活动有一个共同特点就是访问量激增,在高并发下会出现成千上万人抢购一个商品的情景,虽然在系统设计时会通过限流、异步、排队等方式优化,但整体的并发还是平时的数倍以上,参加活动的商品一般都是限量库存,如何防止库存超卖,避免并发问题呢?分布式锁便是一...

TCC事务

如何在业务中体现TCC事务模型在分布式系统设计中,随着微服务的流行,通常一个业务操作被拆分为多个子任务,比如电商系统的下单和支付操作,就涉及到了创建和更新订单、扣减账户余额、扣减库存、发送物流消息等,那么在复杂业务开发中,如何保证最终数据一致性呢? TCC事务模型是什么TCC(Try-Confirm-Cancel...

XA规范

MySQL数据库如何实现XA规范MySQL为我们提供了分布式事务解决方案,在前面的内容中提到过binlog的同步,其实是MySQL XA规范的一个应用,那么XA规范是如何定义的,具体又是怎么实现应用的呢? MySQL有哪些一致性日志如果MySQL数据库断电了,未提交的事务该怎么办? 答案是依靠日志,因为在执行一个...

两阶段提交与三阶段提交协议

对比两阶段提交,三阶段协议有哪些改进?两阶段提交和三阶段提交协议的过程以及应用 在分布式系统中,各个节点之间在物理上相互独立,通过网络进行沟通和协调。在关系型数据库中,由于存在的事务机制,可以保证每个独立节点上的数据操作满足ACID。但是,相互独立的节点之间无法准确知道其他节点中的事务执行情况,所以在分布式的场景...

分布式系统事务

分布式事务有哪些解决方案分布式事务是分布式系统中非常重要的一部分,最典型的例子是银行转款和扣款,A和B的账户信息分别存在于不同的服务器上,A给B转账100元,要完成这个操作,需要两个步骤,从A的账户上扣款以及增加B的账户金额,两个操作步骤是必须要不执行成功的,就像绑定在一起了一样,一个操作失败,那么另一个操作也不...

区块链技术

什么是区块链区块链是一个信息技术领域的术语。从本质上讲,它是一个共享数据库,存储于其中的数据或信息,具有“不可伪造”“全程留痕”“可以追溯”“公开透明”“集体维护”等特征。基于这些特征,区块链技术奠定了坚实的“信任“基础,创造了可靠的“合作”机制,具有广阔的运用前景。 区块连起源于比特币,2008年11月1日,一...

ZooKeeper算法

ZooKeeper如何保证数据一致性什么是ZooKeeper它是一个分布式服务框架,是Apache Hadoop的一个子项目,主要是用来解决分布式应用经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等 在分布式场景中,ZooKeeper的应用非常广范,比如数据发布和订阅...

Paxos算法

Paxos算法在分布式领域具有非常重要的地位,虽然非常重要,但是也因算法复杂而著名 Quorum机制在学习Paxos算法之前,我们先来看分布式系统中的Quorum选举算法,在各种一致性算法中都可以看到Quorum机制的身影,主要数学思想来源于抽屉原理,用一句话解释那就是,在N个副本中,一次更新成功的如果有W个,那...