epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在 ...
分类:
其他好文 时间:
2017-06-27 19:57:01
阅读次数:
187
透明的负载均衡器&http正向代理 * master-workers架构,http正向代理由独立的dns请求以及缓冲进程 * 使用epoll(ET)模式,採用全异步方式(双缓存,实现双向同一时候转发); * 事件管理机制(事件池,事件对象分离) * 使用红黑树超时管理 * 灵活且简单的配置文件 * ...
分类:
Web程序 时间:
2017-06-27 14:55:57
阅读次数:
208
Linux IO模式及 select、poll、epoll详解 <!-- end .post-topheader --> 注:本文是对众多博客的学习和总结,可能存在理解错误。请带着怀疑的眼光,同时如果有错误希望能指出。 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不 ...
分类:
系统相关 时间:
2017-06-27 14:53:39
阅读次数:
247
redis是一个事件驱动程序 主要包含 文件事件和时间事件 文件事件:主要就是server和client进行操作产生的文件 时间事件:主要就是一些需要定时执行的事件。 文件事件: 文件事件处理器是单线程运行的,但是通过IO多路复用,可以处理多个套接字 下面是文件事件处理器的结构 文件事件处理器主要是 ...
分类:
其他好文 时间:
2017-06-25 21:20:06
阅读次数:
278
一、反向代理:Web服务器的“经纪人” 1.1 反向代理初印象 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。 ...
分类:
其他好文 时间:
2017-06-24 09:58:55
阅读次数:
503
先介绍eventfd 使用这个函数来创建一个事件对象,linux线程间通信为了提高效率,大多使用异步通信,采用事件监听和回调函数的方式来实现高效的任务处理方式(虽然会将逻辑变得复杂)。 linux内核会为这个事件对象维护一个64位的计数器(uint64_t).并在初始化时用传进去的initval来初 ...
分类:
编程语言 时间:
2017-06-22 13:26:38
阅读次数:
229
网络server通常都使用epoll进行异步IO处理,而开发人员通常使用mac,为了方便开发。我把自己的handy库移植到了mac平台上。移植过程中,网上竟然没有搜到kqueue的使用样例。让我吃惊不已。为了让大家不用像我一样再次花费大力气搞定kqueue,我整理了一个简单清晰可执行的kqueue样 ...
分类:
其他好文 时间:
2017-06-21 20:02:53
阅读次数:
246
这篇文章是对上篇文章的一个补充,主要环绕下面两点展开。one-connection-per-thread的实现方式以及线程池中epoll的使用。 one-connection-per-thread 依据scheduler_functions的模板,我们也能够列出one-connection-per- ...
分类:
数据库 时间:
2017-06-20 20:12:49
阅读次数:
288
转自:http://blog.csdn.net/xu3737284/article/details/12715963 首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都可以把他们看作流。 之后我们来讨论I/O的 ...
分类:
其他好文 时间:
2017-06-20 18:03:25
阅读次数:
179
声明:示例来源《python核心编程》 前言 单线程处理多个外部输入源的任务只能使用I/O多路复用,如:select,poll,epoll。 特别值得注意的是:由于一个串行程序需要从每个 I/O 终端通道来检查用户的输入,程序在读取 I/O 终端通道时不能阻塞,因为用户输入的到达时间是不确定的,并且 ...
分类:
编程语言 时间:
2017-06-18 12:02:05
阅读次数:
192