摘要:
The C10K problem如今的web服务器需要同时处理一万个以上的客户端了,难道不是吗?毕竟如今的网络是个big place了。 现在的计算机也很强大了,你只需要花大概$1200就可以买一个1000MHz的处理器,2G的内存, 1000Mbit/sec的网卡的机器。让我们来看看--20000个客户,每个为50KHz,100Kbyes和 50Kbit/sec,那么没有什么比为这两万个客户端的每个每秒从硬盘读取4千字节然后发送到网络上 去更消耗资源的了。可以看出硬件不再是瓶颈了。 (That works out to $0.08 per client, by the way. Those 阅读全文
posted @ 2011-12-01 13:40
ajian005
阅读(203)
评论(0)
推荐(0)
摘要:
一、Java基础JSE 核心基础(程序设计语言): 《Think in java》 (参考阅读:《Core Java》JAVA2核心技术第1卷.基础知识) 阅读 《Effective java第二版》集合容器主题:util包 各种数据结构和算法多线程主题:concurrent包 《Concurrent Programming in Java》《JAVA并发编程实践》 《Java Concurrency in Practice》 《The Java Language Specification, Third Edition》第17章网络与IO主题:io/nio/net Mina RMI WebS 阅读全文
posted @ 2011-12-01 13:00
ajian005
阅读(303)
评论(0)
推荐(0)
摘要:
NIO底层实现poll, epoll(jdk1.5update 9 和jdk1.6 仅限于 linux 2.6以上 )Java NIO 选择器(Selector) 知识预备 (linux epoll) http://www.goldendoc.org/2011/07/java-nio-selector-pre-linux-epoll/Channel & FileDescriptor http://www.goldendoc.org/2011/08/channel-filedescriptor/Java NIO 选择器(Selector)与通道(Channel)_1 (linux pol 阅读全文
posted @ 2011-12-01 12:22
ajian005
阅读(729)
评论(0)
推荐(0)
摘要:
首先,介绍几种常见的I/O模型及其区别,如下:blocking I/Ononblocking I/OI/O multiplexing (select and poll)signal driven I/O (SIGIO)asynchronous I/O (the POSIX aio_functions)blocking I/O 这个不用多解释吧,阻塞套接字。下图是它调用过程的图示:重点解释下上图,下面例子都会讲到。首先application调用 recvfrom()转入kernel,注意kernel有2个过程,wait for data和copy data from kernel to user 阅读全文
posted @ 2011-12-01 12:16
ajian005
阅读(339)
评论(0)
推荐(0)
摘要:
因为实际需要所致,我们不得不考虑在现有的开源/商用的应用服务器之外开发一个,有性能要求、有并发要求的服务端应用,从技术要求的角度来分析一下,用Java实现这件事情我们可能关注的知识层面。在整体上,可能需要我们从下面几个层面出发来考虑:1.在硬件和操作系统层面:为什么需要关注这两个方面的知识,因为Java并没有自己的线程,使用的也是OS中的IO,所以我们不得不去了解系统在不同的硬件、OS上面的适用情况、运行情况。比方说,多核技术对于操作系统的影响,这种影响直接会传递到JVM层面;对于数据传输操作的DMA(Direct Memory Access,存储器直接访问)方式的了解,便于我们更好的了解CP 阅读全文
posted @ 2011-12-01 12:14
ajian005
阅读(1451)
评论(0)
推荐(0)
摘要:
今天打算对之前进行多年的Java版服务器端开发进行下技术总结,以供大家参考。个人对服务器开发基础框架平台有以下几点总结(会随时更新):1、 网络设计(BIO(java.net包)和NIO(java.nio.channels包)两种方式,参考MINA(C/S), JETTY(B/S)、jsockets和jniosocket等开源项目)(参考资料O’reilly系列网络编程)2、 传输协议设计(http、https、ftp、smtp等协议和自定义传输协议,基于TCP/IP协议之上)3、 I/O处理设计(字节流(java.io包)和字符流到Buffer(java.nio包)缓冲区,最后把可以扩展到s 阅读全文
posted @ 2011-12-01 11:25
ajian005
阅读(432)
评论(0)
推荐(0)
摘要:
key-value分布式存储系统查询速度快、存放数据量大、支持高并发,非常适合通过主键进行查询,但不能进行复杂的条件查询。如果辅以Real-Time Search Engine(实时搜索引擎)进行复杂条件检索、全文检索,就可以替代并发性能较低的MySQL等关系型数据库,达到高并发、高性能,节省几十倍服务器数量的目的。以MemcacheDB、Tokyo Tyrant为代表的key-value分布式存储,在上万并发连接下,轻松地完成高速查询。而MySQL,在几百个并发连接下,就基本上崩溃了。 虽然key-value分布式存储具有极高的性能,但是只能做类似于MySQL的SELECT * FROM . 阅读全文
posted @ 2011-12-01 10:32
ajian005
阅读(195)
评论(0)
推荐(0)

浙公网安备 33010602011771号