使事情简单化背后是非常繁重的工作。在dotCloud,我们将非常复杂的事务(例如部署和扩展web应用)打包进一个尽可能简单的环境中。但是我们在这样的环境中,如何进行工作呢?从kernel-level的虚拟化到监控,从高吞吐量忘了路由到分布式锁,从EBS处理到每分钟手机数百万的系统数据。。。如同一些人提到过的,弹性调度一个PaaS 就像是系统工程师的迪斯尼乐园。
本文是第一期文章,关于PaaS的架...
分类:
其他好文 时间:
2015-02-14 13:48:20
阅读次数:
275
谷歌技术"三宝"之BigTable2006年的OSDI有两篇google的论文,分别是BigTable和Chubby。Chubby是一个分布式锁服务,基于Paxos算法;BigTable是一个用于管理结构化数据的分布式存储系统,构建在GFS、Chubby、SSTable等google技术之上。相当多...
分类:
其他好文 时间:
2015-02-12 13:51:17
阅读次数:
368
1、描述
共享锁:全局同步分布式锁,同一时间两台机器只能有一台获得锁
2、参与类
InterProcessMutex
3、用法
3.1 创建 InterProcessMutex 实例
public InterProcessMutex(CuratorFramework client,
String path)
Para...
分类:
其他好文 时间:
2015-01-10 21:04:20
阅读次数:
374
ZooKeeper是近期比较热门的一个类Paxos实现。也是一个逐渐得到广泛应用的开源的分布式锁服务实现。被认为是Chubby的开源版,虽然具体实现有很多差异。ZooKeeper概要的介绍可以看官方文档:http://hadoop.apache.org/zookeeper 这里我们重点来看下它的内部实现。
ZooKeeper集群中的每个server都要知道其他成员,通过在配置文件zoo.cf...
分类:
编程语言 时间:
2015-01-05 00:40:31
阅读次数:
182
在很多互联网产品应用中,有些场景需要加锁处理,比如:秒杀,全局递增ID,楼层生成等等。大部分的解决方案是基于DB实现的,Redis为单进程单线程模式,采用队列模式将并发访问变成串行访问,且多客户端对Redis的连接并不存在竞争关系。其次Redis提供一些命令SETNX,GETSET,可以方便实现分布式锁机制。...
分类:
其他好文 时间:
2014-12-12 16:39:40
阅读次数:
203
现在商户索引下载时14台searcher机器同时下载索引大概要花10-12分钟,然后一组一组(3个分布式锁,5组)切换。假定warmup时间为1分半,所以下载+切换的总时间=10分钟 + 5 * 1.5分钟 = 17.5分钟。
注意到这里3台机器切换时,剩下的机器既不切换也不下载,如果能利用切换时间也做下载,将会省下多组切换时间,最理想是只花费1组切换时间,总时间为10分钟 + 1.5分...
分类:
其他好文 时间:
2014-12-06 10:08:36
阅读次数:
141
要求: 分布在不同机器上的进程,同时扫描某个ftp目录,得到文件目录,下载文件,但是要保证每个文件都只被一个进程获取思路:1. 文件以RW方式打开,比较暴力 ,另FTP支持RW方式打开吗。。。没了解过2. 实现一个分布式锁, 2.1 redis: redis单机的事务能否实现? 应该可以,...
分类:
其他好文 时间:
2014-12-03 18:34:12
阅读次数:
252
这里利用zookeeper的EPHEMERAL_SEQUENTIAL类型节点及watch机制,来简单实现分布式锁。
主要思想:
1、开启10个线程,在disLocks节点下各自创建名为sub的EPHEMERAL_SEQUENTIAL节点;
2、获取disLocks节点下所有子节点,排序,如果自己的节点编号最小,则获取锁;
3、否则watch排在自己前面的节点,监听到其删除后,进入第2步(重...
分类:
其他好文 时间:
2014-11-19 14:09:43
阅读次数:
171
引子
redis作为一个强大的key/value数据库,其实还可以用来实现轻量级的分布式锁。
1.实现方案1
最早官方在SETNX命令页给了一个实现:
acquire lock: SETNX lock.foo
release lock: DEL lock.foo
acquire lock when time expired: GETSET lock.foo
...
分类:
其他好文 时间:
2014-11-12 16:39:51
阅读次数:
260
前段时间细节的了解了Jedis的使用,Jedis是redis的java版本的客户端实现。本文做个总结,主要分享如下内容:【pipeline】【分布式的id生成器】【分布式锁【watch】【multi】】【redis分布式】好了,一个一个来。一、 Pipeline官方的说明是:starts a pip...
分类:
其他好文 时间:
2014-11-10 16:59:43
阅读次数:
300