技术
闷骚的狐狸
这个作者很懒,什么都没留下…
展开
-
Zookeeper项目中用到的分布式锁
例子private static boolean wasAcquired = false;// 是否获取了锁public void tetsZookeeper(){String serverId = UUID.randomUUID().toString().toLowerCase();AccountLock lock = new AccountLock("/ACCOUNT/" + serv...原创 2018-11-28 14:51:24 · 187 阅读 · 0 评论 -
Zookeeper选举Master
Zookeeper选举master可以保证一台服务器执行,在项目中运用到的是在没有专门的定时任务服务时,由于一个服务会启多个节点这样就会导致节点之前去抢定时任务,从而造成数据的不一致性。根据之前说的情况,我用了Zookeeper选举Master的原理来保证同一时间只有一个服务在执行服务中的定时任务。下面是实现代码:第一个类package com.baibei.pay.configurer;...原创 2018-11-28 15:22:10 · 327 阅读 · 0 评论 -
session一致性架构设计实践
一、缘起什么是session?服务器为每个用户创建一个会话,存储用户的相关信息,以便多次请求能够定位到同一个上下文。Web开发中,web-server可以自动为同一个浏览器的访问用户自动创建session,提供数据存储功能。最常见的,会把用户的登录信息、用户信息存储在session中,以保持登录状态。什么是session一致性问题?只要用户不重启浏览器,每次http短连接请求,理论上服务...转载 2018-12-16 17:27:53 · 96 阅读 · 0 评论 -
Redis分布式锁的正确实现方式(Java版)
前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。可靠性首先,为了确保分布式锁可用,我们至少要确保锁的实现同...转载 2018-12-16 17:34:25 · 135 阅读 · 0 评论 -
自己实现lock
package com.hwq.fundamment.Thread;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;/** * @author hwq * @date 2019/04/07 ...原创 2019-04-07 21:33:43 · 146 阅读 · 0 评论