用Bollger记录技术之路的点滴...

关注高性能linux网络编程,NoSQL, c/c++/java ~~~ weibo @语_行 http://weibo.com/201281062~~~ twitter @JerryVector https://twitter.com/JerryVector
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2013年3月26日

摘要: awk -F, '{ if($NF == "dmz"){ if($7~/^[a-z][A-Z][^@]+$/){ print $7,$NF }else if($7~/[@]/){ print $7,$NF }else if($7~/^[0-9]+$/){print $7,$NF} } }' file 阅读全文

posted @ 2013-03-26 10:18 语行 阅读(459) 评论(0) 推荐(0) 编辑

2013年3月23日

摘要: 1:整体初始化过程第二节中我们谈到了在twemproxy启动过程中,需要在core_start这个函数中创建context,这个core_start函数里就完成了配置文件的解析以及相应组件的初始化。下边定位到core.c: core_start这个函数,我们来看看它的具体实现。1):struct context *ctx;首先,在这个函数的开始,创建了一个context对象。context,顾名思义:上下文,我们看它的定义:一个context含有id, cf(配置),stats,pool:server_pool, 因为一个配置文件中会有很多个节点,每一个节点其实就是一个server_ pool 阅读全文

posted @ 2013-03-23 13:39 语行 阅读(1044) 评论(0) 推荐(0) 编辑

2013年3月18日

摘要: 其实这两年为 Nginx 世界做了这么多的事情,一直想通过一系列教程性的文章把我的那些工作成果和所学所知都介绍给更多的朋友。现在终于下决心在新浪博客http://blog.sina.com.cn/openresty上面用中文写点东西,每一篇东西都会有一个小主题,但次序和组织上就不那么讲究了,毕竟并不是一本完整的图书,或许未来我会将之整理出书也不一定。我现在编写的教程是按所谓的“系列”来划分的,比如首先连载的“Nginx 变量漫谈”系列。每一个系列基本上都可以粗略对应到未来出的 Nginx 书中的一“章”(当然内部还会重新组织内容并划分出“节”来)。我面向的读者是各个水平层次的 Nginx 用户 阅读全文

posted @ 2013-03-18 09:28 语行 阅读(687) 评论(0) 推荐(0) 编辑

2013年3月16日

摘要: 三、Twemproxy关键数据结构分析1: array. 位于:nc_array.hTwemproxy自己实现了一个数组结构以及一系列对这个结构进行操作的函数,array结构定义如下:struct array { uint32_t nelem; /* # element 当前数组的位置索引*/ void *elem; /* element 元素指针,指向array的首地址*/ size_t size; /* element size 每一个元素的大小 */ uint32_t nalloc; /* # allocated element ... 阅读全文

posted @ 2013-03-16 22:25 语行 阅读(2600) 评论(0) 推荐(0) 编辑

摘要: 一、Twemproxy概述及其特性Twemproxy是一个由twitter开源的memcache与redis的代理,全部由C语言实现。作为一个代理,它的主要特性包括:1:可以减少到后端cache服务器的连接。2:在多个cache服务之间自动共享数据。3:能够使用不同的策略和散列函数支持一致性hash。4:通过配置设置是否禁用失败的节点。5:运行多个实例,客户端可以连接到第一个可用的代理服务。6:支持请求的流式与批处理,降低来回的消耗。二、Twemproxy启动启动流程分析对于一个由C/C++编写的应用程序而言,程序的启动点一般都是main函数,所以对一个程序进行分析的话,也一般都是有main函 阅读全文

posted @ 2013-03-16 20:41 语行 阅读(3943) 评论(0) 推荐(0) 编辑

2013年3月15日

摘要: 我们知道,mysql里边,日期类型有很多表现形式,date, datetime,timestamp等类型。考虑这样一种场景:按时间段拉取给定时间段的内容,这时,我们就得使用日期类型的比较了。表结构:tablename_tbl+-----------------+--------------+------+-----+-------------------+----------------+| Field | Type | Null | Key | Default | Extra |+-------... 阅读全文

posted @ 2013-03-15 13:33 语行 阅读(121791) 评论(0) 推荐(2) 编辑

2013年3月13日

摘要: 你可能对于 Linux 的负载均值(load averages)已有了充分的了解。负载均值在 uptime 或者 top 命令中可以看到,它们可能会显示成这个样子:load average: 0.09, 0.05, 0.01很多人会这样理解负载均值:三个数分别代表不同时间段的系统平均负载(一分钟、五 分钟、以及十五分钟),它们的数字当然是越小越好。数字越高,说明服务器的负载越 大,这也可能是服务器出现某种问题的信号。而事实不完全如此,是什么因素构成了负载均值的大小,以及如何区分它们目前的状况是 「好」还是「糟糕」?什么时候应该注意哪些不正常的数值?回答这些问题之前,首先需要了解下这些数值背后的 阅读全文

posted @ 2013-03-13 23:13 语行 阅读(500) 评论(0) 推荐(0) 编辑

2013年3月8日

摘要: 我们知道,linux下socket编程有常见的几个系统调用:对于服务器来说, 有socket(), bind(),listen(), accept(),read(),write()对于客户端来说,有socket(),connect()这里主要要讲的是客户端这边的connect函数。对于客户端来说,需要打开一个套接字,然后与对端服务器连接,例如: 1 int main(int argc, char **argv) 2 { 3 struct sockaddr_in s_addr; 4 memset(&s_addr, 0, sizeof(s_addr)); 5 ... 阅读全文

posted @ 2013-03-08 17:08 语行 阅读(26387) 评论(5) 推荐(2) 编辑

2013年3月6日

摘要: 我们知道,linux上 , man是一个很有用的命令,使用他可以帮助我们查看一个命令的使用手册。有时候,当我们想查看linux一个系统函数的文档,如何来区分呢,可以这样使用:1 Executable programs or shell commands2 System calls (functions provided by the kernel)3 Library calls (functions within program libraries)4 Special files (usually found in /dev)5 File formats and conventions eg 阅读全文

posted @ 2013-03-06 12:58 语行 阅读(239) 评论(0) 推荐(0) 编辑

2013年3月2日

摘要: AWK可以说是linux进行文本处理的一把利器,很多时候一行简单命令,便可以完成复杂的文本处理任务。很多时候,我们在处理一些数据处理的需求的时候,可能会产生一些数据文件,接下来,可能就涉及到要对这些数据文件做一些处理;通常产生的数据文件可能会有特定的格式例如:text1,text2,text3..... //以逗号为分隔符text1 text2 text3.......//以空格为分隔符等等这种类似的文件。这时候,如果要查找某一列相同的所有的行,用一般的命令就很不方便处理了,不过用AWK就很方便了,如,我们要查询第二列相同的行,每列以逗号来分割,可以这样:awk -F["," 阅读全文

posted @ 2013-03-02 12:28 语行 阅读(209) 评论(0) 推荐(0) 编辑