上一页 1 ··· 5 6 7 8 9 10 11 12 13 下一页
摘要: 一、前言 前篇博客分析了Zookeeper的序列化和通信协议,接着继续学习客户端,客户端是开发人员使用Zookeeper最主要的途径,很有必要弄懂客户端是如何与服务端通信的。 二、客户端 2.1 客户端组成 Zookeeper客户端主要由如下核心部件构成。 1. Zookeeper实例,客户端入口。 阅读全文
posted @ 2016-11-24 21:32 leesf 阅读(5287) 评论(10) 推荐(3) 编辑
摘要: 一、前言 前面介绍了Zookeeper的系统模型,下面进一步学习Zookeeper的底层序列化机制,Zookeeper的客户端与服务端之间会进行一系列的网络通信来实现数据传输,Zookeeper使用Jute组件来完成数据的序列化和反序列化操作。 二、Jute Jute是Zookeeper底层序列化组 阅读全文
posted @ 2016-11-24 11:11 leesf 阅读(14134) 评论(0) 推荐(7) 编辑
摘要: 一、前言 前面已经讲解了Zookeeper的一些应用场景,但是并没有深入到Zookeeper内部进行分析,本篇将讲解其系统模型。 二、系统模型 2.1 数据模型 Zookeeper的数据节点称为ZNode,ZNode是Zookeeper中数据的最小单元,每个ZNode都可以保存数据,同时还可以挂载子 阅读全文
posted @ 2016-11-22 20:24 leesf 阅读(3642) 评论(0) 推荐(3) 编辑
摘要: 一、前言 上一篇博文讲解了Zookeeper的典型应用场景,在大数据时代,各种分布式系统层出不穷,其中,有很多系统都直接或间接使用了Zookeeper,用来解决诸如配置管理、分布式通知/协调、集群管理和Master选举等一系列分布式问题。 二、 Hadoop Hadoop的核心是HDFS(Hadoo 阅读全文
posted @ 2016-11-16 22:10 leesf 阅读(12532) 评论(1) 推荐(7) 编辑
摘要: 一、前言 在上一篇博客已经介绍了Zookeeper开源客户端的简单实用,本篇讲解Zookeeper的应用场景。 二、典型应用场景 Zookeeper是一个高可用的分布式数据管理和协调框架,并且能够很好的保证分布式环境中数据的一致性。在越来越多的分布式系统(Hadoop、HBase、Kafka)中,Z 阅读全文
posted @ 2016-11-12 11:03 leesf 阅读(20962) 评论(12) 推荐(30) 编辑
摘要: 一、前言 上一篇博客已经介绍了如何使用Zookeeper提供的原生态Java API进行操作,本篇博文主要讲解如何通过开源客户端来进行操作。 二、ZkClient ZkClient是在Zookeeper原声API接口之上进行了包装,是一个更易用的Zookeeper客户端,其内部还实现了诸如Sessi 阅读全文
posted @ 2016-11-05 17:08 leesf 阅读(4976) 评论(4) 推荐(9) 编辑
摘要: 一、前言 上一篇博客我们通过命令行来操作Zookeper的客户端和服务端并进行相应的操作,这篇主要介绍如何通过API(JAVA)来操作Zookeeper。 二、开发环境配置 首先打开Zookeeper服务端(上一篇博客有具体的方法),方便客户端连接。 配置开发环境环境可以有两种方式:① 直接下载相关 阅读全文
posted @ 2016-11-04 15:17 leesf 阅读(40662) 评论(11) 推荐(18) 编辑
摘要: 一、前言 在学习了Zookeeper相关的理论知识后,下面接着学习对Zookeeper的相关操作。 二、Zookeeper部署 Zookeeper的部署相对来说还是比较简单,读者可以在网上找到相应的教程,点这里,笔者不再累赘。 Zookeeper有三种运行形式:集群模式、单机模式、伪集群模式。 以下 阅读全文
posted @ 2016-11-02 17:22 leesf 阅读(61699) 评论(5) 推荐(24) 编辑
摘要: 一、前言 笔者的校招其实早就告一段落了,一直到现在才动笔写这份校招的心得。 二、实习 实习招聘早在去年过年(2月份)就已经开始内推了。当时,在师兄的推荐下笔者怀着忐忑的心情参加了腾讯的内推,当时还没有准备好,也不知道面试中的套路,所以免不了有些担心,后来发现此次担心是完全多余的,因为压根就没有收到回 阅读全文
posted @ 2016-11-02 09:35 leesf 阅读(8881) 评论(45) 推荐(48) 编辑
摘要: 一、前言 在学习了Paxos在Chubby中的应用后,接下来学习Paxos在开源软件Zookeeper中的应用。 二、Zookeeper Zookeeper是一个开源的分布式协调服务,其设计目标是将那些复杂的且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一些列简单的接口提供给用 阅读全文
posted @ 2016-11-01 20:03 leesf 阅读(13379) 评论(15) 推荐(20) 编辑
摘要: 一、前言 在上一篇理解了Paxos算法的理论基础后,接下来看看Paxos算法在工程中的应用。 二、Chubby Chubby是一个面向松耦合分布式系统的锁服务,GFS(Google File System)和Big Table等大型系统都是用它来解决分布式协作、元数据存储和Master选举等一些列与 阅读全文
posted @ 2016-10-28 10:50 leesf 阅读(9287) 评论(9) 推荐(10) 编辑
摘要: 一、前言 继续前面的学习,这篇我们来学习在分布式系统中最重要的一块,一致性协议,其中就包括了大名鼎鼎的Paxos算法。 二、2PC与3PC 在分布式系统中,每一个机器节点虽然能够明确知道自己在进行事务操作过程中的结果是成功或是失败,但是却无法直接获取到其他分布式节点的操作结果,因此,当一个事务操作需 阅读全文
posted @ 2016-10-26 21:34 leesf 阅读(6240) 评论(2) 推荐(11) 编辑
摘要: 《分布式》系列是读《从Paxos到Zookeeper》一书的读书笔记 一、前言 在大数据系统中,分布式系统已经成为一个无法避免的组件,如zookeeper已经成为了工业届的标准。所以对于大数据的研究,也必须要研究分布式系统的特点。 二、集中式系统 由一台或多台计算机组成的中心节点,数据集中存储在这个 阅读全文
posted @ 2016-10-24 16:56 leesf 阅读(9261) 评论(0) 推荐(17) 编辑
摘要: 一、前言 对于找Java相关工作的读者而言,在笔试中肯定免不了遇到try-catch-finally + return的题型,需要面试这清楚返回值,这也是这篇博文产生的由来。本文将从字节码层面来解释为何不同的写法对应的返回结果不相同。当然在实际开发环境下不会这么抠知识点,但是掌握这种分析方法也未尝不 阅读全文
posted @ 2016-09-12 21:54 leesf 阅读(1344) 评论(0) 推荐(7) 编辑
摘要: 一、描述 给定一棵二叉树,如何判断一棵树是否是二叉排序树。给出树结点定义如下 二、解题思路 根据二叉排序树的性质,在进行中序遍历的时候,当前结点的值总是大于前驱结点的值,需要在遍历时保存前驱结点的值,这样有利于进行判断,基于这样的思路来进行解题。 三、代码 根据以上的解题思路(遍历时利用二叉排序树的 阅读全文
posted @ 2016-09-08 20:55 leesf 阅读(10212) 评论(0) 推荐(2) 编辑
摘要: 一、描述 用两个栈实现一个队列,队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别在队列尾部插入结点和队列头部删除结点的功能。 二、解题思路 队列的规则是先进先出,而栈的规则是后进先出,由于有两个栈,可以让元素进栈两次,就可以模拟出先进先出的效果。可以让一个队列存放元 阅读全文
posted @ 2016-08-30 21:56 leesf 阅读(403) 评论(1) 推荐(0) 编辑
摘要: 一、描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树,假设输入的前序遍历和中序遍历的结果中都不含重复的数字,例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出该二叉树。二叉树结点的定义如下 二、解题思路 可以根据前序遍历序列 阅读全文
posted @ 2016-08-28 20:26 leesf 阅读(417) 评论(0) 推荐(1) 编辑
摘要: 一、背景 由于项目需要,需要在Sbt+Scala项目中连接MySQL数据库。由于之前使用Maven+Java进行依赖管理偏多,在Sbt+Scala方面也在不断进行摸索,特此记录,作为小模块知识的积累。 二、系统环境 Scala、Sbt、IDE的版本分别如下 Scala版本 ==> 2.11.8 Sb 阅读全文
posted @ 2016-08-28 11:22 leesf 阅读(2215) 评论(0) 推荐(1) 编辑
摘要: 一、描述 输入一个单链表的头结点,从尾到头反过来打印出每个结点的值。 链表结点定义如下 二、解题思路 此题有两种解题思路,一种是利用递归的方法打印,另外一种是在从头到尾遍历的过程中将结点的值保存至栈中,利用栈先进后出的特性,之后再依次打印栈中的结点元素即可。 三、代码 根据如上的解题思路有如下的代码 阅读全文
posted @ 2016-08-26 22:11 leesf 阅读(362) 评论(0) 推荐(1) 编辑
摘要: 一、描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的排序排序,请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 二、解题思路 关键:从数组的最右上方的数开始判断,根据该数与指定整数的大小进行下一步的比较。 三、代码 根据思路可以得到如 阅读全文
posted @ 2016-08-25 22:16 leesf 阅读(425) 评论(0) 推荐(1) 编辑
摘要: 为了方便园友系统学习操作系统,现将操作系统六篇博文的目录整理如下: 1. 【操作系统】操作系统综述(一) 2. 【操作系统】进程管理(二) 3. 【操作系统】处理机调度与死锁(三) 4. 【操作系统】存储器管理(四) 5. 【操作系统】设备管理(五) 6. 【操作系统】文件管理(六) 谢谢各位园友的 阅读全文
posted @ 2016-06-29 21:25 leesf 阅读(4198) 评论(1) 推荐(12) 编辑
摘要: 一、前言 本篇是操作系统系列的最后一篇,文件管理,由于系统的内存有限并且不能长期保存,故平时总是把它们以文件的形式存放在外存中,需要时再将它们调入内存。如何高效的对文件进行管理是操作系统实现的目标。 二、文件和文件系统 现代OS几乎都是通过文件系统来组织和管理在计算机中所存储的大量程序和数据的。文件 阅读全文
posted @ 2016-06-29 21:10 leesf 阅读(23837) 评论(3) 推荐(24) 编辑
摘要: 一、前言 学习了存储器管理后,继续学习设备管理,设备管理的主要功能有缓冲区管理、设备分配、设备处理、虚拟设备及实现设备独立性等,由于I/O设备不仅种类繁多,而且他们的特性和操作方式往往相差甚大,使得设备管理称为操作系统中最繁杂且与硬件最紧密的部分,下面开始正式的学习。 二、I/O系统 2.1 I/O 阅读全文
posted @ 2016-06-29 09:44 leesf 阅读(7503) 评论(5) 推荐(12) 编辑
摘要: 一、前言 在分析了处理器调度后,接着分析存储器管理,如何对存储器进行有效的管理,直接影响着存储器的利用率和系统性能。下面,开始存储器管理的学习。 二、存储器的层次结构 2.1 主存储器 主存储器是计算机系统中的一个主要部件,用于保存进程运行时的程序和数据,CPU的控制部件只能从主存储器中取得指令和数 阅读全文
posted @ 2016-06-26 16:34 leesf 阅读(15254) 评论(9) 推荐(28) 编辑
摘要: 一、前言 前面介绍了进程与线程的相关概念,现在继续学习处理机调度,处理机是系统最重要的资源,提高处理机的利用率和改善系统性能,在很大程度上取决于处理机调度性能的好坏,下面来介绍处理的调度以及死锁的问题。 二、处理机调度的层次 2.1 高级调度 高级调度又称为作业调度或长程调度,主要功能是根据某种算法 阅读全文
posted @ 2016-06-24 10:41 leesf 阅读(6341) 评论(0) 推荐(26) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 下一页