美文网首页
分布式锁及分布式事务

分布式锁及分布式事务

作者: 城市里永远的学习者 | 来源:发表于2018-12-24 12:36 被阅读0次

分布式锁是解决并发时资源争抢的问题,分布式事务和本地事务是解决流程化提交问题。
一、其中分布式锁实现:
1.基于数据库锁实现,悲观锁和乐观锁
悲观锁就是采用行锁,for update ,属于排他锁,其他任何写操作都要等当前操作完成,性能差,并发上来都要等操作完成,需要设置setAutoCommit
乐观锁就是通过添加版本号,在update 时比较版本号方式更新 比如version,不被阻塞;
2.基于redis实现
setnx(key,expire),get(key),getset(key,newexpire)实现完整的分布式锁,并且可以通过注解来加锁
3.基于zookeeper
实际是基于paoxy
二、分布式事务实现
原则:优先使用本地事务,将操作优先在一个本地事务中完成,无法使用本地事务的采用分布式事务
1.全局事务(DTP模型),基于2PC、3PC(两段和三段提交)实现,但由于同步阻塞,处理效率低,不适合大型网站分布式场景
原则:ACID,刚性事务
2pc:一阶段预提交,二阶段提交,都成功情况才会成功
2.柔性事务
原则:基本可用,最终一致,即BASE理论
关于柔性事务,最主要的有以下三种类型:异步确保型、补偿型、最大努力通知型
幂等性:参数列表对比,是否重复请求
可补偿:保证原子性
TCC操作:TCC位于业务服务层而非资源层
TCC没有单独的准备(Prepare)阶段,Try操作兼备资源操作与准备能力 Try操作可以灵活选择业务资源的锁定粒度(以业务定粒度)
TCC有较高开发成本

相关文章

  • java分布式,最终一致性,java幂等问题分析

    分布式学习: 分布式常用的分布式事务解决方案介绍有多少种?基于 Redis 的分布式锁分布式简介关于分布式事务、两...

  • 032 某金服面试题

    分布式事务 分布式锁方案和区别 分布式缓存 分布式选举问题 分库分表的方案 MVCC 方案 MySQL 的事务的实...

  • 使用etcd分布式锁做主备切换

    利用etcd事务机制可以实现分布式锁,利用分布式锁可以做主备切换功能。Etcd分布式锁实现方式如下:利用etcd事...

  • 分布式框架

    分布式框架思考 分布式框架需要考虑的问题:分布式锁、分布式事务、分布式存储、分布式调度、分布式计算、容器部署(通信...

  • 什么是分布式锁?几种分布式锁分别是怎么实现的?

    推荐学习 分布式-全家桶(面试+技术):分布式锁+分布式事务+分布式缓存,redis+zk+nginx+mq+ka...

  • 分布式锁及分布式事务

    分布式锁是解决并发时资源争抢的问题,分布式事务和本地事务是解决流程化提交问题。一、其中分布式锁实现:1.基于数据库...

  • 锁(2)-- 分布式锁

    前言: 锁分3种:java锁、分布式锁、DB锁 分布式锁的几种实现方式 目前几乎很多大型网站及应用都是分布式部署...

  • 【学习】Spring微服务

    分布式理论 分布式基础理论微服务基础理论分布式事务分布式一致性分布式缓存分布式锁分布式Session负载均衡 Sp...

  • 分布式事务

    分布式事务是什么? 分布式事务是指事务的参与者、支持事务的服务器、资源服务器及事务的管理器分别位于分布式系统的不同...

  • 分布式事务与分布式锁

    一、分布式事务 什么事分布式事务 分布式事务就是指事务的资源分别位于不同的分布式系统的不同节点之上的事务。 分布式...

网友评论

      本文标题:分布式锁及分布式事务

      本文链接:https://www.haomeiwen.com/subject/zeuakqtx.html