`
邢邢色色
  • 浏览: 230085 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
文章列表
本文来谈谈快照文件,事务日志文件在文件系统中是如何存放的。   写事务日志是事务处理的关键步骤,所以高度建议在一个独立的磁盘上存储。快照不需要在独立的磁盘存储,因为它们是由一个后台线程以懒汉式的(lazily)方 ...
在上一篇的server代码骨架中已提到,当处理proposal时,是由SyncRequestProcessor来处理的,下面就来对这其中的操作做更详细的分析。 日志和磁盘使用情况 server是使用事务日志来持久化事务的。在accept一个proposal请求之前,server(follower或者leader)把这个proposal以事务的形式持久化到事务日志,按照顺序进行append。server每隔一段时间,时不时的roll over,就是关掉当前的日志文件,并创建一些新的文件继续append。   因为写事务日志是写请求的一个关键步骤,所以ZK需要保证这个操作的高效。在硬件上 ...
在ZK的源码中,leader,follower和observers的代码结构是高度统一的。在实现中主要的抽象就是request processor了。在处理消息的流水线(pipeline)中有很多不同的阶段,一个request processor代表其中的一个阶段,每一种server类型(无论leader,f ...
这是淘宝上的开源项目,地址:http://code.taobao.org/p/zkweb/wiki/index/   这是一个Java写的web应用程序,可以通过浏览器查看,管理ZooKeep上的数据,可以方便管理。 此外还有一些其他的类似程序,先不去看了,这个暂时能满足需求了。 简单起见以我整理的程序为准开始部署,请下载附件中的程序。   1,导入程序 这是一个Maven项目,所以先得配置好相关环境。  2,生成数据库文件 此项目使用H2数据库来存储ZK的配置信息,所以需要先生成一个初始数据库文件。 首先在配置你要生成数据库文件的路径,在com.yasenagat.zk ...
如果你喜欢命令行式交互型的监控,不妨使用这个小工具。   github地址:https://github.com/phunt/zktop   Summary This project provides a unix “top” like utility for ZooKeeper.提供类似top的命令   Example Running: ./zktop.py --servers "localhost:2181,localhost:2182,localhost:2183" or, for a ZK-style configuration fil ...
关于client   在client library中有2个主要的类:ZooKeeper和ClientCnxn。ZooKeeper类实现了大部分API,写client应用程序时必须实例化这个对象来建立一个session。一旦建立起一个session,ZooKeeper使用一个ID来关连这个session。这个ID实际上是由server side生成的(参考SessionTrackerImpl)。   ClientCnx类管理连接到server的连接。它维护一个可以连接的ZooKeeper的server列表,并当连接断掉的时候透明的切换到其他的server。当重连到一个其他的serve ...
Session是Zookeeper的一个重要的抽象。有序的保证,ephemeral znode,watch都与session紧紧关联。 session的跟踪机制也是很重要的一块。   ZooKeeper server的一个重要任务就是跟踪并维护这些session。运行于standalone模式下的单独的server会维 ...
watch是由read operation设置的一次性触发器,由一个特定operation来触发。为了在server端管理watch,ZK的server端实现了watch manager。一个WatchManager类的实例负责管理当前已被注册的watch列表,并负责触发它们。所有类型的server(包括standalone,leader,follower和observer)使用同样的方式处理watch。   DataTree类持有一个watch manager来维护所有类型的watch和一些附加的数据,当处理一个带有watch的read operation时,此类就会把这个watch加 ...
原创翻译,如有错误,请指正。原文。 一个运行中的拓扑是由什么组成的:worker进程,executors和tasks。 Storm是按照下面3种主要的部分来区分Storm集群中一个实际运行的拓扑的: Worker进程 Executors (线程) Tasks 下图简单的展示了它们的关系:    上图中的3段话依次如下: Storm集群中的其中1台机器可能运行着属于多个拓扑(可能为1个)的多个worker进程(可能为1个)。每个worker进程运行着特定的某个拓扑的executors。 1个或多个excutor可能运行于1个单独的worker进程,每1个exec ...
原创翻译,如有错误请指出,谢谢。 原文链接:http://storm.incubator.apache.org/about/integrates.html   集成 Storm可以集成任何队列系统和数据库系统。Storm的spout的抽象使得集成一个新的队列系统变得简单。示例的队列集成包括: Kestrel RabbitMQ / AMQP Kafka JMS Amazon Kinesis 同样的,集成数据库系统到Storm中也很简单。简单的打开一个连接到你的数据库,进行你通常想要做的读写。 Storm会处理并行(parallelization),分片(partit ...
系统环境 安装环境为GNU/Linux 2.6.32 x64。 需要为每台设置好hostname,并在/etc/hosts配置好集群中每台机器的hostname与ip的关系。 确认集群里每台机器互相之间都是可以访问的,取消端口的限制。 注:以下命令行输入的命令没有加sudo,可自己酌情添加。  
示例工程代码   可从附件下载   具体的说明和用法在后面介绍   需求与目的   一个游戏服务端需要处理各种业务逻辑,每一种业务逻辑都对应着一个请求消息和一个响应消息。那么服务端需要把这些不同的消息自动分发到对应的业务逻辑中处理。   最简单的处理方式就是根据请求消息中的type字段,使用switch case来进行分别处理,但这种方式随着消息的增多,显现了一些坏味道:长长的一大坨不太好看;如果要添加新的消息、新的逻辑,或者去掉新的消息、新的逻辑,在代码上不但要修改这些消息和逻辑,还不得不修改这长长的一坨swtich case,这样的修改显得很多余。   所以我们的 ...
原文出处:http://netty.io/wiki/reference-counted-objects.html 原文地址可能有变,且内容可能发生变化。 如果转载请注明出处,谢谢合作^_^。   自从Netty 4开始,对象的生命周期由它们的引用计数(reference counts)管理,而不是由垃圾收集器(garbage collector)管理了。ByteBuf是最值得注意的,它使用了引用计数来改进分配内存和释放内存的性能。   基本的引用计数   每个对象的初始计数为1:   ByteBuf buf = ctx.alloc().directBuffer(); a ...
    OS版本:Centos 6.2    NDK版本:android-ndk-r8d-linux-x86     libcurl版本:curl-7.29.0     在这里没有使用make-standalone-toolchain.sh来生成特定的工具链,     而是直接设定环境变量CC,指向指定的工具链的gcc以及使用的android平台的版本和CPU架构,例如:     export CC="/opt/android-ndk-r8d/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/ar ...
1、 搭建环境 Centos 6.2、 64 位   2、 安装Jira4.4.4 的 bin 文件       下载地址       32位:http://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-4.4.4-x32.bin   64位:http://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-4.4.4-x64.bin 文件位于“安装文件”目录,此文件自带了Tomcat 6 ...
Global site tag (gtag.js) - Google Analytics