数据库
文章平均质量分 75
ChrisXiaoxh
这个作者很懒,什么都没留下…
展开
-
Twemproxy源码走读(4):运行主流程
Twemproxy在初始化完毕、运行前准备(nc_pre_run)结束后,开始进入正式的运行过程,(1) nc_run的整体流程整体流程很清晰,图1 nc_run整体流程图(2) core_start流程core_start流程也不复杂,其中主要是创建struct context变量ctx,nc使用结构体structcontext变量ctx保存运行时的上下文原创 2016-11-29 10:18:31 · 786 阅读 · 0 评论 -
Twemproxy源码走读(5):事件处理
概述Twemproxy中的IO复用考虑了跨平台的情况,针对不同平台采用不同的IO复用机制,比如Linux下使用epoll、FreeBSD使用kqueue等,在event目录下都有实现,所有的IO复用机制对外实现了统一的接口(event/nc_event.h):struct event_base *event_base_create(int size, event_cb_t cb);voi原创 2016-12-02 09:33:29 · 1780 阅读 · 0 评论 -
Twemproxy源码走读(1):概述
Twemproxy(又称nutcracker,以下简称NC)是Memcached和Redis协议的代理服务器(下文中简单起见,只提及Redis,大部分情况适用于Memcached,不适用时会特别说明),并能有效减少大量连接对Redis服务器的性能影响。虽然Redis3.0版本具有集群的特性,但还不适合生产环境,单台Redis机器又受到内存大小限制,还存在出现故障会直接影响业务,同时,过多的客户端连原创 2016-11-20 09:19:51 · 1269 阅读 · 0 评论 -
Twemproxy源码走读(3):初始化流程
Twemproxy初始化过程比较简单,这里把Twemproxy初始化过程分成两部分:(1)读取运行选项;(2)运行前的初始化和准备;(1) 读取运行选项 读取各项参数的设置,比如是否后台运行(daemonize)、日志级别、日志文件、配置文件名称等信息。 正如前一章(概述)里讲到的,NC使用了一个全局变量nc(类型为struct ins原创 2016-11-23 11:54:43 · 759 阅读 · 0 评论 -
Twemproxy源码走读(2):数据结构
Twemproxy内部定义了若干种数据结构,如概述中所述,包括自定义的数据结构和关键数据结构,本章将讲述两种数据结构,为后面的复杂的逻辑分析扫清障碍。自定义的数据类型: nc_array.c、nc_array.h、nc_string.c、nc_string.h 关键数据结构和算法: nc_rbtree.h、nc_rbtree.c、nc_queue.h、nc_request.c、nc_res原创 2016-11-27 09:20:22 · 840 阅读 · 0 评论