- 浏览: 83568 次
- 性别:
- 来自: 杭州
最新评论
-
xiaopeng187:
I/O密集操作的线程应该和业务逻辑的线程尽量分开,mina中是 ...
[mina指南]mina中Half Sync/Half Async模式 -
yzhw:
...
【mina指南】mina中的reactor模式(一) -
uniseraph:
ubuntu dia
[mina指南]诡异的IoFilterChain实现 -
thomescai:
请问,你这个类图用什么工具画得?
[mina指南]诡异的IoFilterChain实现 -
nextw3:
MINA为什么要采用这种过滤链结构那?请赐教
[mina指南]诡异的IoFilterChain实现
文章列表
zookeeper代码阅读
- 博客分类:
- zookeeper
开始读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看看。
- 2009-07-17 14:33
- 浏览 1755
- 评论(0)
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方面的题材。
- 2009-02-20 10:55
- 浏览 1621
- 评论(2)
今天找了两台服务器进行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
传统客户端开发模式
传统客户端软件往往是通过多线程+连接池+堵 ...
- 2008-10-08 19:26
- 浏览 3638
- 评论(3)
前段时间,搭建了一个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通道,这个在网上资料很 ...
- 2008-08-26 14:37
- 浏览 4046
- 评论(0)
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. 发送数据到客户端
首先 ...
- 2008-08-15 09:34
- 浏览 10155
- 评论(4)
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
- 2008-08-15 03:55
- 浏览 6091
- 评论(2)