分布式锁
xiaozhu0301
这个作者很懒,什么都没留下…
展开
-
分布式锁用什么好
分布式锁:redis 性能好zookpeer 稳定性好……后边完善原创 2020-12-21 16:22:35 · 187 阅读 · 0 评论 -
spring编写组件之分布式组件
引入maven依赖的相关jar包<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-integration</artifactId></dependency><dependency> <groupId>org.springframework.integra原创 2020-12-21 14:55:45 · 127 阅读 · 0 评论 -
java中采用lua脚本执行redis操作
1.lua的执行脚本,set数据 lock-set.lua--- 获取keylocal key = KEYS[1]--- 获取valuelocal val = KEYS[2]--- 获取一个参数local expire = ARGV[1]--- 如果redis找不到这个key就去插入if redis.call("get", key) == false then --- 如果插入成功,就去设置过期值 if redis.call("set", key, val) then原创 2020-12-21 10:56:53 · 4284 阅读 · 1 评论 -
分布式锁之红锁
部署多台独立的redis;redis的配置:package com.online.taxi.order.config;import org.redisson.Redisson;import org.redisson.api.RedissonClient;import org.redisson.config.Config;import org.springframework.beans.factory.annotation.Autowired;import org.springframewor原创 2020-12-21 09:53:47 · 1053 阅读 · 0 评论 -
Redis分布式锁之红锁
一、问题分布式锁,当我们请求一个分布式锁的时候,成功了,但是这时候slave还没有复制我们的锁,masterDown了,我们的应用继续请求锁的时候,会从继任了master的原slave上申请,也会成功。这就会导致,同一个锁被获取了不止一次。二、办法Redis中针对此种情况,引入了红锁的概念。三、原理用Redis中的多个master实例,来获取锁,只有大多数实例获取到了锁,才算是获取成功。具体的红锁算法分为以下五步:获取当前的时间(单位是毫秒)。使用相同的key和随机值在N个节点上请求锁。这里转载 2020-12-21 09:32:00 · 2631 阅读 · 0 评论 -
分布式锁之单个redis---Redisson
1.引入jar包,maven的相关依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency> <dependency> <groupId>org.redisson</group原创 2020-12-19 18:47:10 · 239 阅读 · 1 评论 -
分布式锁之redis锁--手写redis
分布式锁,即同一个服务被部署成集群,这样就涉及到资源争抢的问题,单机的资源,直接用jvm内部的synchronized的锁就可以分布式锁的接口package com.online.taxi.order.service;public interface GrabService { /** * 司机抢单 * @param orderId * @param driverId * @return */ public String g原创 2020-12-18 18:39:30 · 221 阅读 · 1 评论 -
分布式锁之mysql锁
首先需要在数据库中创建一个表,对应共享资源的id(id)和抢占资源的标识(用户id),(该表和业务无关,只是为了解决抢占分布式资源问题)其它字段信息略网约车中司机抢单的场景创建表SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for tbl_order 业务表-- ----------------------------DROP TABLE IF EXISTS `tbl_order原创 2020-12-18 17:59:36 · 121 阅读 · 1 评论