`
uniseraph
  • 浏览: 82520 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
开始读zookeeper代码,首先启动zookeeper,看到 java -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp /home/uniseraph/dev/zookeeper-3.3.3/bin/../build/classes:/home/uniseraph/dev/zookeeper-3.3.3/bin/../build/lib/log4j-1.2.15.jar:/home/uniseraph/dev/zookeeper-3.3.3/bin/../bui ...
    supervisor是一种很常用的erlang pattern,各种资料比较多,但是网上各种例子和说明都主要是针对one_for_one的restart strategies,simple_one_for_one的资料比较少。本文通过分析supervisor源码,说明simple_one_for_one的使用方法与运行机制。 what  is the  supervisor ? 引用 A  behaviour  module  for  implementing  a  supervisor, a process which supervises other processes ca ...
XEngine第一个版本已经搞定,上个架构图,有兴趣的同学可以去http://apptest4.aliapp.com看看。
what is the gen_server ? man 中 gen_server定义是: 引用A behaviour module for implementing the server of a client-server relation. A generic server process (gen_server) implemented using this module will have a standard set of interface functions and include functionality for tracing and error reporting. ...
去年年底时候生病了,咳嗽的厉害,然后项目比较紧张,所以没写blog。3月份可能会空一点,到时候再写一下blog,应该还是mina/memcached/erlang方面的题材。
今天找了两台服务器进行Memcached Client java的测试,其中 服务器为: CPU:2* Socket Designation: CPU1  Version: Intel(R) Xeon(R) CPU   E5320  @ 1.86GHz 内存:8G 起8个线程,运行memcached-1.2.6 客户端为: CPU: 2* Socket Designation: CPU1         Version: Intel(R) Xeon(R) CPU           E5310  @ 1.60GHz 内存:8G jdk1.6 代码分支:https://commons-c ...
最近总是要看看memcached的代码,虽然以前也是作c/c++的,可是这几年用惯eclipse,已经不习惯用vi看代码了。研究一下,用eclipse-cdt debug memcached,现在方便多了。 1. 解压代码 cd dev tar zxvf memcached-1.2.6-tar.gz 2. configure cd memcached-1.2.6 ./configure --enable-threads 3. 新建一个C project 4. import 代码到project中 5. 创建一个t ...
用mina开发了一个memcached java client ,性能测试表现良好, 用我的t61做客户端测试,最高能到28000tps。 代码在:http://commons-client.googlecode.com/svn/trunk/,有兴趣的朋友可以看看。我准备把这个项目开源,后面还有不少优化余地,有兴趣的朋友请和我联系,呵呵。 前提条件 1 jdk1.6 2 安装maven 3 安装ant 编译: ant 运行测试程序:  ant run -Dip=....  -Dthread=100 -Drepeat=10000 -Dsize=2 ip: memcached server i ...
memcached作为一种高性能的内存缓存服务器,在业界获得了广泛的应用。最近因工作需要好好分析了一下memcached的源码,有一些意外收获,用在项目中得到了很好的效果。所以给大家分享一下,希望抛砖引玉。 memcached在编译时候可以选择多线程和单线程两种模式,默认是单线程,不过在多核情况下,建议使用多线程方式,线程数推荐为cpu数。 由上图,很容易分析出memcached的主要流程 1 初始化 1.1  在主线程中创建一个event_base , 监听connect/read 事件,主线程即是acceptor又是worker; 1.2  创建一个连接队列Connection_Q ...
这段时间用mina开发了一个 memcached java client ,性能非常理想。 sever: redhat-4.0 8G client : t61, 2G 线程数    每线程消息get请求数   socket连接数  速度 150        10000               2          21570 150        10000               1          19169 100        10000               1          20427 传统客户端开发模式 传统客户端软件往往是通过多线程+连接池+堵 ...
前段时间,搭建了一个hadoop分布式环境,特点在于 1 把定制的配置文件和hadoop源码分开,这样升级hadoop版本的时候,不需要重新修改配置文件; 2 经常要在集群模式/单点模式下进行切换 硬件准备情况: 有4台机器,一台作为namenode,三台作为datanode,机器名分配如下 10.2.224.24 namenode 10.2.224.25 datanode1 10.2.224.26 datanode2 10.2.224.27 datanode3 环境搭建步骤 1.在每台机器上创建一个admin用户,打通从namenode到各个datanode的ssh通道,这个在网上资料很 ...
NioProcessor是mina中的另一个核心部分,与NioSocketAcceptor类似,NioProcessor三个主要功能是: 1、接受一个NioSession 2、出来NioSession上的read、write等事件 3、关闭一个NioSession 与NioSocketAcceptor类似,NioProcessor的实现采用了template模式,以上功能整体流程在NioProcessor的父类AbstractPollingIoProcessor中基本完成了,NioSocketAcceptor只是针对Nio的情况完成实现。 创建NioProcessor 如上图,NioSoc ...
mina中的reactor模式实现参考了Doug Lea 在《Scalable IO in Java》中的reactor。 从上面来两个图可以看出:与传统的单个Reactor模式实现不同,mina中采用了Multiple Reactor的方式。NioSocketAcceptor和NioProcessor使用不同selector,能够更加充分的榨取服务器的性能。 acctptor主要负责 1. 绑定一个/多个端口,开始监听 2. 处理客户端的建链请求 3. 关闭一个/多个监听端口 processor主要负责 1. 接受客户端发送的数据,并转发给业务逻辑成处理 2. 发送数据到客户端 首先 ...
    mina作为一个具有高性能高扩展性的网络通讯框架,自诞生以来获得了各方面的关注。我从04年的时候开始关注mina的前身Netty2,06年利用业余时间使用mina-0.8版本实现了zte 3g平台的底层通信协议,获得良好的效果。遗憾的是,没多久我就离开了zte,所以相关工作没有继续下去,也没有推广。     目前网络上关于mina的资料不少,但是大多是些入门的内容,相对比较简单,因此我写一些mina的文档希望对大家有所帮助。侧重点在于mina的内部架构与实现,至于mina怎么用就不再关注了。     希望读者能够具有以下预备知识     1. socket开发基础(包括nio)   ...
这几天用mina做了一个memcached java client,其中包括memcached协议的解析,就用这个例子来说明一下。 首先以get命令为例,TODO
Global site tag (gtag.js) - Google Analytics