上一页 1 2 3 4 5 6 ··· 12 下一页

Java NIO 选择器(Selector) 知识预备 (linux epoll)

摘要: 最近花些功夫在研究Java NIO的JDK源码,发现Selector的实现,除了在唤醒机制上做了手脚,主要依赖操作系统的实现,为了无负担的弄懂Selector,有必要研究一下操作系统是如何实现选择的。本文主要参考linux-2.6.10内核epoll的实现(poll见上一篇)。本文可能会表现得很肤浅,高手们请直接略过,另外,本文所出现的“政府”字样,乃比喻性质的,或者就认为它是“清政府”好了,请相关人员不要曲解。上回冒充大侠poll府上走了一遭,感觉还不过瘾,于是计划再到它表哥epoll家去闯闯,可是man了一下之后,我有点退却了,丫的,还以为它表哥是一个人,原来是仨儿:12345678910 阅读全文
posted @ 2013-06-05 12:38 李涛_buptsse 阅读(1571) 评论(0) 推荐(0) 编辑

Java NIO原理 图文分析及代码实现

摘要: 目录:一.java NIO 和阻塞I/O的区别 1. 阻塞I/O通信模型 2. java NIO原理及通信模型二.java NIO服务端和客户端代码实现具体分析:一.java NIO 和阻塞I/O的区别1. 阻塞I/O通信模型假如现在你对阻塞I/O已有了一定了解,我们知道阻塞I/O在调用InputStream.read()方法时是阻塞的,它会一直等到数据到来时(或超时)才会返回;同样,在调用ServerSocket.accept()方法时,也会一直阻塞到有客户端连接才会返回,每个客户端连接过来后,服务端都会启动一个线程去处理该客户端的请求。阻塞I/O的通信模型示意图如下:如果你细细分析,一定会 阅读全文
posted @ 2013-06-05 11:54 李涛_buptsse 阅读(238) 评论(0) 推荐(0) 编辑

NIO ByteBuffer 使用方法

摘要: 缓冲区分配和包装在能够读和写之前,必须有一个缓冲区,用静态方法 allocate() 来分配缓冲区:ByteBuffer buffer = ByteBuffer.allocate(1024);allocate() 方法分配一个具有指定大小的底层数组,并将它包装到一个缓冲区对象中 — 在本例中是一个 ByteBuffer。还可以将一个现有的数组转换为缓冲区:byte array[] = new byte[1024];ByteBuffer buffer = ByteBuffer.wrap(array);本例使用了 wrap() 方法将一个数组包装为缓冲区。一旦完成包装,底层数据就可以通过缓冲区或者 阅读全文
posted @ 2013-06-04 21:27 李涛_buptsse 阅读(341) 评论(0) 推荐(0) 编辑

一致性 hash 算法( consistent hashing )

摘要: consistent hashing算法早在1997年就在论文Consistent hashing and random trees中被提出,目前在cache系统中应用越来越广泛;1基本场景比如你有N个cache服务器(后面简称cache),那么如何将一个对象object映射到N个cache上呢,你很可能会采用类似下面的通用方法计算object的hash值,然后均匀的映射到到N个cache;hash(object)%N一切都运行正常,再考虑如下的两种情况;1一个cache服务器m down掉了(在实际应用中必须要考虑这种情况),这样所有映射到cache m的对象都会失效,怎么办,需要把cach 阅读全文
posted @ 2013-06-02 22:53 李涛_buptsse 阅读(110) 评论(0) 推荐(0) 编辑

[转载] 蚂蚁变大象:浅谈常规网站是如何从小变大的

摘要: 2005年,我开始和朋友们开始拉活儿做网站,当时第一个网站是在linux上用jsp搭建的,到后来逐步的引入了多种框架,如webwork、hibernate等。在到后来,进入公司,开始用c/c++,做分布式计算和存储。(到那时才解开了我的一个疑惑:C语言除了用来写HelloWorld,还能干嘛?^_^)。总而言之,网站根据不同的需求,不同的请求压力,不同的业务模型,需要不同的架构来给予支持。我从我的一些经历和感受出发,大体上总结了一下的一些阶段。详情容我慢慢道来。【第一阶段:搭建属于自己的网站】我们最先开始的网站可能是长成这个样子的:拿Java做例子,我们可能会引入struts、spring、h 阅读全文
posted @ 2013-06-02 22:30 李涛_buptsse 阅读(141) 评论(0) 推荐(0) 编辑

Nginx 入门教程

摘要: == Nginx介绍和安装 ==Nginx是一个自由、开源、高性能及轻量级的HTTP服务器及反转代理服务器,其性能与IMAP/POP3代理服务器相当。Nginx以其高性能、稳定、功能丰富、配置简单及占用系统资源少而著称。Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多.*基础功能处理静态文件,索引文件以及自动索引;反向代理加速(无缓存),简单的负载均衡和容错;FastCGI,简单的负载均衡和容错;模块化的结构。过滤器包括gzipping, byte ranges, chunked responses, 以及 SSI-filter 阅读全文
posted @ 2013-06-02 21:41 李涛_buptsse 阅读(647) 评论(1) 推荐(1) 编辑

使用 Nginx 提升网站访问速度

摘要: Nginx 简介Nginx("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。 Igor 将源代码以类 BSD 许可证的形式发布。尽管还是测试版,但是,Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。根据最新一期(08 年 6 月份)的 NetCraft 调查报告显示,已经有超过两百万的主机使用了 Nginx,这个数字超过了另外一个轻 阅读全文
posted @ 2013-06-02 21:07 李涛_buptsse 阅读(201) 评论(0) 推荐(0) 编辑

MemCached 安装日志

摘要: 关键字: memcached1、下载memcached-1.2.1.tar.gz和libevent-1.3b.tar.gz;2、安装libeventtar xvfz libevent-1.3b.tar.gzcd libevent-1.3b./configure && makemake install3、安装memcachetar xvfz memcached-1.2.1.tar.gzcd memcached-1.2.1./configuremake && make install4、将libevent安装的/usr/local/lib输出到引用库路径# vi ~ 阅读全文
posted @ 2013-06-02 19:30 李涛_buptsse 阅读(407) 评论(0) 推荐(0) 编辑

Memcached基础教程

摘要: Memcache是什么Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这些HashTable。Memcache官方网站:http://www.danga.com/memcached,更多详细的信息可以来这里了解 :)为什么会有Memcache和memcached两种名称?其实Memcache是这个项目的名称,而memcached是它服务器 阅读全文
posted @ 2013-06-02 18:27 李涛_buptsse 阅读(109) 评论(0) 推荐(0) 编辑

Linux下的Memcache安装

摘要: Linux下Memcache服务器端的安装服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.3.0 。下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz另外,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent,libevent的最新版本是libevent-1.3。(如果你的系统已经安装了libevent,可以不用安装)官网:http://www.monkey.org/~provos/libevent/下载:http://www.monkey 阅读全文
posted @ 2013-06-02 18:24 李涛_buptsse 阅读(113) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 12 下一页