- 博客(6)
- 问答 (1)
- 收藏
- 关注
原创 基于 Redis 的分布式锁 Redlock
这篇文章主要是对 Redis 官方网站刊登的 Distributed locks with Redis 部分内容的总结和翻译。 什么是 RedLock Redis 官方站这篇文章提出了一种权威的基于 Redis 实现分布式锁的方式名叫 Redlock,此种方式比原先的单节点的方法更安全。它可以保证以下特性: 安全特性:互斥访问,即永远只有一个 client 能拿到锁 避免死锁:最终 cli...
2018-07-29 21:47:23 2729
原创 [论文笔记] Google Spanner Distributed Database
Spanner 是谷歌的可伸缩、多版本、全球分布、支持同步复制的数据库,它是第一个在全球范围内传递数据且保证外部一致的分布式事务的系统。论文叙述了它的架构、特征、许多设计的依据和一个新的可以暴露时钟不确定性的API。 简介 开篇叙述了 Spanner 的一些特性,在全球分布的 Paxos 状态机上进行 data sharding,利用复制保证整体可用性和地域局部性,客户端会自动在副本间进行fa...
2018-07-28 16:11:34 1348
原创 谈谈在 Java 中实现定时任务的几种方式
工作中经常接触到定时任务,实现定时任务的方式很多,常见的有 Spring @schedule 注解配合 Cron 表达式、JDK 自带的 TimerTask or Timer、使用开源作业调度框架 Quartz、线程池 ScheduleExecutorService 和其实现类 ScheduledThreadPoolExecutor。 @schedule 注解 Spring 中的 @sched...
2018-07-21 14:10:59 286
原创 Timer & TimerTask 源码分析
承接上一篇,看一看 Timer 和 TimerTask 内部的实现。之前说了我自己极少使用这个,目前在 Java 开发中使用 Timer 应该也非常少见了,既然是这样一个夕阳组件,为什么还要写个源码分析呢?主要是由于这部分的实现非常有借鉴意义,如果你工作中需要开发一个自动化流程,让它每一步都能定时执行,那么其实现方式和 Timer、TimerTask 的内部实现其实大同小异,都是维护一个 Task...
2018-07-21 14:10:21 280
原创 GuavaCache RemovalListener 失效
问题 最近接触到 Google 的 Java 工具包 Guava,确实很好用,特别是其中的 GuavaCache 算是经常使用到的本地缓存,这次遇到一个需求是希望在 xxx min 之后做一个延时操作,虽然可以开一个定时任务做,但是由于当时代码里正好使用到了 GuavaCache,想起来可以基于 Key 的过期做一个回调方法不就行了嘛,猜测 GuavaCache 肯定是支持这样的回调 API 的...
2018-07-21 14:09:34 2678 2
原创 [论文笔记] Chubby 分布式锁服务
开篇作者主要介绍了谷歌内部的分布式锁服务 Chubby,可以在分布式环境下提供粗粒度的锁服务,可用于大规模机器间实现同步、存储元数据或者拓扑结构或者配置信息。谈到如何实现异步的一致性,Chubby 的解决方案是引入 Paxos,事实上作者也提到当时只要是实现了异步一致性的或多或少其内部实现都有 Paxos 算法的影子。作者强调这篇论文并不涉及新提出的算法,而只是聚焦于工程实现和后续优化提升。 第...
2018-07-21 14:08:38 4209
空空如也
请问类似微信右上角这样的菜单,文字前怎么加上图标
2016-08-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人