- 博客(7)
- 资源 (1)
- 收藏
- 关注
原创 一个 Top k 问题
这个问题其实是由下面这个问题引入的: 从20亿个数字的文本中,找出最大的前100个。这个问题的比较好的解决方法就是,维护 k 个元素的小根堆,用容量为 k 的最小堆存储最先遍历到的 k 个数,并假设它们即是最大的 k 个数,建堆费时O(k)后,假如 k1 为根,那么有 k1 就是这 k 个元素中最小的元素)。继续遍历数列,每次遍历一个元素x,与堆顶元素比较,x>k1,更新堆(用时logk),否
2017-11-28 15:10:23 438
原创 zookeeper 中 Watcher 通知机制的一点理解
首先,ZooKeeper 提供了分布式数据的发布/订阅功能。这让我想到一种模式,观察者模式:一个典型的发布/订阅模型系统定义了一种一对多的订阅关系,能够让多个订阅者同时监听某一个主题对象,当这个主题自身状态变化时,会通知所有订阅者,试它们能够做出相应的处理。那 ZooKeeper 是不是也是使用了这个经典的模式呢?在 ZooKeeper 中,引入了 Watcher 机制来实现这种分布式的通知功能。
2017-11-24 16:37:42 28106 4
原创 OAuth 2.0 ——授权码模式
OAuth 是一个关于授权(authorization)的开放网络标准,主要应用在第三方登录场景,目前的版本是2.0版。本文主要参考材料为:RFC 6749阮一峰的网络日志《理解OAuth 2.0》其实,阮一峰的文章基本上就是翻译的 RFC 6749 文档,卷面很整洁,让人看起来很舒服,但是,内容却不怎么样,前后有点接不上,翻译的不全面,有些地方也没有解释清楚,本文尽量做一些补充。还有一个问题
2017-11-22 17:22:44 4163 2
原创 zookeeper 使用场景
ZooKeeper 是一个高可用的分布式数据管理与协调框架。基于对 ZAB 算法的实现,该框架能够很好地保证分布式环境中数据的一致性。 ZAB 算法、Paxos 算法、2PC、3PC、一致性hash算法 等ZooKeeper 可以保证以下几点分布式一致性的特性:
2017-11-09 18:14:36 418
原创 关于java 数组 forEach() 以及 remove 的使用
首先,对于Java中数组的遍历,目前有三种方式,for循环、Iterator迭代和forEach遍历,下面就来说说这几种循环方式。由于本文只关心数组,所以下面都以ArrayList为例(基于 jdk 1.7 )。
2017-11-07 18:15:15 4420 2
转载 一致性协议——2PC/3PC
为了解决分布式一致性问题,在长期的探索研究过程中,涌现出了一大批经典的一致性协议和算法,其中最著名的就是二阶段提交协议、三阶段提交协议和 Paxos 算法了。本文将着重介绍二阶段和三阶段提交协议的设计与算法实现流程。
2017-11-01 19:00:01 354
原创 事务从集中式到分布式的转变
对于本地事务处理或者是集中式的事务处理系统,很显然我们可以采用已经被实践证明很成熟的 ACID 模型来保证数据的严格一致性。但是随着分布式事务的出现,传统的单机事务模型已经无法胜任。尤其是对于一个高访问量、高并发量的互联网分布式系统来说,如果我们期望实现一套严格满足 ACID 特性的分布式事务,很可能出现的情况就是在系统的可用性和严格一致性之间出现冲突。于是,如何构建一个兼顾可用性和一致性的分布式系统成为了无数工程师
2017-11-01 15:29:33 586
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人