文档章节

memcached连接处理过程

有理想的猪
 有理想的猪
发布于 2014/11/07 16:59
字数 264
阅读 46
收藏 0
点赞 0
评论 0

以TCP监听为例

1、启动时memcached调用server_socket函数创建事件监听:
main() -> server_sockets() -> server_socket()

conn_new(sfd, conn_listening,
                                             EV_READ | EV_PERSIST, 1,
                                             transport, main_base)))

第二个参数为连接的初始状态,第五个参数为监听协议,目前支持三个:Unix Socket、TCP、UDP,其中UDP与TCP可同时监听,但他们不可与Unix Socket并存,main函数可以看到此代码。

2、在conn_new()中可以看到处理监听事件的函数为 event_handler,经过简单判断之后调用drive_machine()

3、drive_machine中因为此时连接为 conn_listening状态,后续动作接受(accept)连接,然后由dispatch_conn_new()处理

4、dispatch_conn_new()中向我们上一篇博文提到的管道对中的send端发送消息触发对应线程中的事件处理函数thread_libevent_process()
更多信息请查阅管道定义函数 pipe 的文档

5、线程的事件处理函数定义在 thread.c 中,系统初始化时定义线程函数(setup_thread)也在此

© 著作权归作者所有

共有 人打赏支持
有理想的猪
粉丝 134
博文 86
码字总数 29655
作品 0
红挢
高级程序员
服务器高并发网络设计模型

Nginx网络模型 一、进程模型 Nginx之所以为广大码农喜爱,除了其高性能外,还有其优雅的系统架构。与Memcached的经典多线程模型相比,Nginx是经典的多进程模型。Nginx启动后以daemon的方式在...

满小茂 ⋅ 2016/08/28 ⋅ 0

redis介绍、主从配置

NoSQL之redis介绍: remote rerictionry server 是一个基于key-value键值对的持久化数据库存储系统,redis和memcached缓存服务很像。 但是redis支持的数据存储类型更丰富,包括string、list、...

yacai1990 ⋅ 2016/07/11 ⋅ 0

Httpd+Tomcat+memcached实现session server

何为会话保持 会话保持是负载均衡最常见的问题之一,也是一个相对比较复杂的问题。会话保持有时候又叫做粘滞会话(Sticky Sessions)。会话保持是指在负载均衡器上的一种机制,可以识别客户端与...

择一城 ⋅ 2017/11/09 ⋅ 0

缓存-memcache

memcache是c语言编写的内存缓存,常见同php协同应用,支持多种语言。对于java web有三种常用的client Memcached客户端程序 Memcached的java客户端已经存在三种了: 官方提供的基于传统阻塞i...

HZCoder ⋅ 2016/02/18 ⋅ 1

spymemcached源码中Reactor模式分析

简介 spymemcached 是一个 memcached 的客户端, 使用 NIO 实现。采用Reactor模式实现,单线程,高性能Memcached客户端。 spymemcached源码分析:http://my.oschina.net/astute/blog/93492 R...

yychaov5 ⋅ 2013/01/04 ⋅ 3

J2EE集群之failover小点子

J2EE集群不太了解的人首先可以看看附件里面的《解开J2EE集群的神秘面纱》, 讲的挺好的。 J2EE的服务器集群主要的就是负载均衡 和失败转移 这些。 负载均衡这个话题都烂大街了,随处可以找到...

光石头 ⋅ 2011/08/23 ⋅ 2

如何使keystone更有效率

写在前面…… 最近在测试OpenStack Havana RDO版本的时候,发现过一段时间后,整个平台会变动的越来越慢。刚刚开始还没什么动力去trouble shooting,毕竟就一demo的环境。昨天居然给让我无法...

icheer ⋅ 2014/01/22 ⋅ 0

2017双11技术揭秘—TDDL/DRDS 的类 KV 查询优化实践

作者:励强(君瑜) 场景介绍 性能优化是企业级应用永恒的话题,关系型数据库查询优化更是如此。在前台核心业务场景中,类 KeyValue 查询(以下简称类 KV 查询)是非常常见的(例如,SELECT id...

中间件小哥 ⋅ 2017/12/27 ⋅ 0

34. Python Memcached 安装 集群

1.Memcache 安装 安装过程略,查询官网有安装方法。 官方网站下载地址:http://memcached.org/downloads memcache简介 Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减...

ln286577399 ⋅ 2017/12/06 ⋅ 0

linux下的工作模型以及Nginx工作原理

web服务器主要任务就是处理来自客户端的请求,一般情况下Web服务器处理并发连接请求的工作模型有以下几种方式: 1、单线程web服务器(Single-threaded web servers) 此种架构方式中,web服务器...

魔都搬砖 ⋅ 06/06 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

两道面试题,带你解析Java类加载机制

在许多Java面试中,我们经常会看到关于Java类加载机制的考察,例如下面这道题: class Grandpa{ static { System.out.println("爷爷在静态代码块"); }} cl...

1527 ⋅ 11分钟前 ⋅ 0

SpringCloud(Data Flow)

dataflow-server

赵-猛 ⋅ 21分钟前 ⋅ 0

深入理解Java虚拟机

这本书我读到第8章,之后就是在读不下去了。 读到后面是一种痛苦的体验,太多的东西是不全面的,大量的专有名词是没有解释的,读到最后很多东西仅仅是一个侧面,所以我觉得,这本书不适合初学...

颖伙虫 ⋅ 27分钟前 ⋅ 0

B树和B+树的总结

B树 为什么要B树 磁盘中有两个机械运动的部分,分别是盘片旋转和磁臂移动。盘片旋转就是我们市面上所提到的多少转每分钟,而磁盘移动则是在盘片旋转到指定位置以后,移动磁臂后开始进行数据的...

浮躁的码农 ⋅ 30分钟前 ⋅ 0

NanoPi NEO core/ Ubuntu16.04单网卡配置3个IP地址(2个静态,1个动态)

配置 root@NanoPi-NEO-Core:/etc/network# cat interfacesauto loiface lo inet loopbackallow-hotplug eth0iface eth0 inet static address 172.31.188.249 netmask 255.......

SamXIAO ⋅ 56分钟前 ⋅ 0

三步为你的App集成LivePhoto功能

摘要:LivePhoto是iOS9新推出的一种拍照方式,类似于拍摄Gif图或录制视频片段生成图片。如果没有画面感,可以联想《哈利波特》霍格沃茨城堡的壁画,哈哈,很炫酷有木有,但坑爹的是只有iphone6S以...

壹峰 ⋅ 今天 ⋅ 0

centos7 git安装

由于centos中的源仓库中git不是最新版本,需要进行源码安装。 1、查看yum仓库git信息 [root@iZm5e3d4r5i5ml889vh6esZ zh]# yum info gitLoaded plugins: fastestmirrorLoading mirror s...

xixingzhe ⋅ 今天 ⋅ 0

input file 重复上传同一张图片失效的解决办法

解决办法 方法一:来回切换input[type='file']的type属性值,可以是‘text’,'button','button'....,然后再切换回来‘file’ 方法二:每次取消图片预览后,重置input[type='file']的value的...

时刻在奔跑 ⋅ 今天 ⋅ 0

Mahout推荐算法API详解

前言 用Mahout来构建推荐系统,是一件既简单又困难的事情。简单是因为Mahout完整地封装了“协同过滤”算法,并实现了并行化,提供非常简单的API接口;困难是因为我们不了解算法细节,很难去根...

xiaomin0322 ⋅ 今天 ⋅ 0

WampServer默认web服务器根目录位置

安装WampServer之后的web服务器根目录默认位置在WampServer安装目录下的www:

临江仙卜算子 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部