
Redisson源碼解讀-分散式鎖
- 2022 年 11 月 7 日
- 筆記
前言 Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。Redisson有一样功能是可重入的分布式锁。本文来讨论一下这个功能的特点以及源码分析。 前置知识 在讲Redisson,咱们先来聊聊分布式锁的特点以及Redis的发布/订阅机制, …
Continue Reading
前言 Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。Redisson有一样功能是可重入的分布式锁。本文来讨论一下这个功能的特点以及源码分析。 前置知识 在讲Redisson,咱们先来聊聊分布式锁的特点以及Redis的发布/订阅机制, …
Continue Reading
一、简介 canal [kə'næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析 ,提供 增量数据订阅和消费 。 早期阿里巴巴因为杭州和美国双机房部署,存在跨机房同步的业务需求,实现方式主要是基于业务 trigger 获取增量变更。从 2010 年开始,业务逐步尝试数据 …
Continue Reading
一、前言 我们在实现使用Redis实现分布式锁,最开始一般使用 SET resource-name anystring NX EX max-lock-time 进行加锁,使用Lua脚本保证原子性进行实现释放锁。这样手动实现比较麻烦,对此Redis官网也明确说Java版使用 Redisson 来实现。 …
Continue Reading1. 概述 老话说的好:便宜没好货,有价值的商品,即使再贵,也有人会买。 言归正传,今天继续讨论有关“锁”的话题,synchronized 和 ReentrantLock 大家应该都非常熟悉了,但这两个锁,作用域仅限制于单个Tomcat,如果使用了 Tomcat 集群,这两个锁就不管用了。 此时我们 …
Continue Reading
前言 Redisson 除了提供了分布式锁之外,还额外提供了同步组件,Semaphore 和 CountDownLatch。 Semaphore 意思就是在分布式场景下,只有 3 个凭证,也就意味着同时只会有三个线程执行业务。 设置凭证 参数列表: KEYS[1]:指定的 key 这里叫 semap …
Continue Reading
前言 RedLock 红锁,是分布式锁中必须要了解的一个概念。 所以本文会先介绍什么是 RedLock,当大家对 RedLock 有一个基本的了解。然后再看 Redisson 中是如何实现 RedLock 的。 在文章开头先说明 Redisson RedLock 建议不要使用!!! 在文章开头先说明 …
Continue Reading
开心一刻 一男人站在楼顶准备跳楼,楼下有个劝解员拿个喇叭准备劝解 劝解员:兄弟,别跳 跳楼人:我不想活了 劝解员:你想想你媳妇 跳楼人:媳妇跟人跑了 劝解员:你还有兄弟 跳楼人:就是跟我兄弟跑的 劝解员:你想想你家孩子 跳楼人:孩子是他俩的 劝解员:死吧,妈的你活着也没啥价值了 前言 关于锁,相信大 …
Continue Reading
前言 说起 Redisson,比较耳熟能详的就是这个看门狗(Watchdog)机制。 本文就一起看看加锁成功之后的看门狗(Watchdog)是如何实现的? 加锁成功 在前一篇文章中介绍了可重入锁加锁的逻辑,其中 RedissonLock#tryAcquireAsync 方法是进行异步加锁的逻辑。 回 …
Continue Reading
前言 相信小伙伴都是使用分布式服务,那一定绕不开分布式服务中数据并发更新问题! 单系统很容易想到 Java 的各种锁,像 synchronize、ReentrantLock 等等等,那分布式系统如何处理? 当然是使用分布式锁。 如果小伙伴不知道什么是分布式锁,那推荐看看石杉老师的 突击课 或者在网上 …
Continue Reading
开心一刻 我找了个女朋友,挺丑的那一种,她也知道自己丑,平常都不好意思和我一块出门 昨晚,我带她逛超市,听到有两个人在我们背后小声嘀咕:“看咱前面,想不到这么丑都有人要。” 女朋友听后,羞的满脸通红,我想女朋友虽然丑但是对我很好,我不会嫌弃她的 后面两个人继续嘀咕:“是啊,那男人真丑!” 卧槽,小丑 …
Continue Reading