一、前言 之前写的一篇文章《细说分布式锁》介绍了分布式锁的三种实现方式,但是Redis实现分布式锁关于Lua脚本实现、自定义分布式锁注解以及需要注意的问题都没描述。本文就是详细说明如何利用Redis实现重入的分布式锁。 二、方案 死锁问题 当一个客户端获取锁成功之后,假如它崩溃了导致它再也无法和 R ...
分类:
其他好文 时间:
2019-09-21 17:20:39
阅读次数:
219
本案例主要讲解 实现分布式锁的两种实现方式: 实现、 实现。网上关于这方面讲解太多了,Van自认为文笔没他们好,还是用示例代码说明。 一、 实现 该方案只考虑 单机部署的场景 1.1 加锁 1.1.1 原理 1. : 使用 来当锁,因为 是唯一的; 1. : 我传的是唯一值( ),很多童鞋可能不明白 ...
分类:
其他好文 时间:
2019-09-21 01:25:59
阅读次数:
185
前言: 前面我们了解了什么是分布式锁,以及分布式锁使用的场景和分布式实现的原理,那么接下来我们就来看一下在实际开发中我们要向实现一个分布式锁,应该如何实现,常见的分布式所得实现方法有:基于数据库实现、基于缓存实现、基于zookeeper等,在这里我们来看一下基于缓存的分布式锁的实现。 一、版本一、基 ...
分类:
其他好文 时间:
2019-09-17 19:08:53
阅读次数:
79
具体面试题下面一起来看 208 道面试题,具体的内容。一、Java 基础1.JDK 和 JRE 有什么区别?2.== 和 equals 的区别是什么?3.两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?4.final 在 java 中有什么作用?5.java 中的 ...
分类:
编程语言 时间:
2019-09-16 16:02:51
阅读次数:
102
分布式锁 多个系统要对一个key进行操作,最后操作key的顺序和预期的顺序不一致,此时就用分布式锁对一个目标加锁,使其他进程无法争到已经被占用的锁。 基本指令 加锁指令:setnx lock 目标 true 移除锁指令:del lock 目标 但是如果在加锁后执行出现异常终止导致没有移除锁,就会导致 ...
分类:
其他好文 时间:
2019-09-15 14:11:18
阅读次数:
84
目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两 ...
分类:
其他好文 时间:
2019-09-15 11:15:35
阅读次数:
95
一、数据发布与订阅(配置中心)二、负载均衡三、命名服务(Naming Service)四、分布式通知/协调五、集群管理与Master选举六、分布式锁七、分布式事务一、数据发布与订阅(配置中心)发布与订阅模型,即所谓的配置中心,顾名思义就是发布者将数据发布到ZK节点上,供订阅者动态获取数据,实现配置信... ...
分类:
其他好文 时间:
2019-09-15 01:38:00
阅读次数:
110
一、概述实现原理实现代码一、概述分布式锁解决方案(目的:为了保证在分布式领域中共享数据安全问题)数据库实现分布式锁(不推荐、效率特别低)基于Redis实现分布式锁setNx (非常麻烦考虑死锁、释放问题) 、redission分布式锁基于Zookeeper实现分布式锁(强烈推荐)SpringClou... ...
分类:
其他好文 时间:
2019-09-15 01:26:28
阅读次数:
84
ETCD 简介 ETCD是一个开源的、分布式的键值对数据存储系统,由Go语言实现,用于存储key-value键值对,同时不仅仅是存储,主要用途是提供共享配置及服务发现,使用Raft一致性算法来管理高度可用的复制日志。有下面特点 简单:定义明确,面向用户的API(gRPC) 安全:具有可选客户端证书身 ...
分类:
其他好文 时间:
2019-09-13 19:20:00
阅读次数:
127