最新 最热

分布式锁实现原理与最佳实践

很多应用场景是需要系统保证幂等性的(如api服务或消息消费者),并发情况下或消息重复很容易造成系统重入,那么分布式锁是保障幂等的一个重要手段。...

2021-07-15
0

打通Java和C 之间的传送门,JNI从0 到1的保姆级教程

因此封装了lua 的战斗接口,将lua 封装成可以java调用的动态链接库。这样的解决方案使用了JNI的技术。今天来聊下JNI的一些知识点。因为有一段时间没搞C++了,还是得从头开始。...

2021-07-15
0

Redis原理篇

前面我们说通过队列的rpush和blpop可以实现消息队列(队尾进队列出),没有任何元素可以弹出的时候,连接会被阻塞。 但是基于list实现的消息队列,不支持一对多的消息分发,相当于只有一个消费者。如果要实现一对多的消息分发,怎...

2021-07-14
0

基于Redis实现DelayQueue延迟队列设计方案

有想进滴滴LogI开源用户群的加我个人微信: jjdlmn_ 进群(备注:进群) 群里面主要交流 kakfa、es、agent、LogI-kafka-manager、等等相关技术; 群内有专人解答你的问题 对~ 相关技术领域的解答人员都有; 你问的问题都会...

2021-07-14
0

【Redis】Redis+Lua的使用注意事项

Redis从2.6.0版本开始提供了eval命令,通过内置的Lua解释器,可以让用户执行一段Lua脚本并返回数据。因为Redis单线程模型的特点,可以保证多个命令的原子性; Redis的API是原子性的操作 eval是redis的一个Api...

2021-07-14
0

Redisson 分布式锁源码 11:Semaphore 和 CountDownLatch

Redisson 除了提供了分布式锁之外,还额外提供了同步组件,Semaphore 和 CountDownLatch。

2021-07-09
0

Redisson 分布式锁源码 05:公平锁加锁

在加锁失败时,线程会进入 while 循环,一直尝试获得锁,这时候是多线程进行竞争。就是说谁抢到就是谁的。

2021-07-09
0

Redisson 分布式锁源码 03:可重入锁互斥

源码定位:org.redisson.RedissonLock#lock(long, java.util.concurrent.TimeUnit, boolean)

2021-07-09
0

Redisson 分布式锁源码 01:可重入锁加锁

单系统很容易想到 Java 的各种锁,像 synchronize、ReentrantLock 等等等,那分布式系统如何处理?

2021-07-09
0

后端程序员必会:并发情况下redis-lua保证原子操作

本文主要是分享在实际工作中同事遇到的问题案例;活动组在做活动时,开发人员未考虑到接口并发场景,导致因为一些用户在实际抽奖(土豪一般都是狂抽)过程中对余额产生了增加/减少的操作,导致缓存的余额出现异常;通过我review...

2021-07-09
0