上一页 1 2 3 4 5 6 7 ··· 15 下一页
摘要: 这篇文章会对twemproxyRedis协议解析代码部分进行一番简单的分析,同时给出twemproxy目前支持的所有Redis命令。在这篇文章开始前,我想大家去简单地理解一下有限状态机,当然不理解也是没有问题的,有限状态机仅仅能帮助我们更好地理解twemproxyRedis协议解析代码部分。 red 阅读全文
posted @ 2017-01-31 18:54 Breeze0806 阅读(960) 评论(0) 推荐(0) 编辑
摘要: 本文旨在帮助大家探索出twemproxy接收流程的代码逻辑框架,有些具体的实现需要我们在未来抽空去探索或者大家自行探索。在这篇文章开始前,大家要做好一个小小的心理准备,由于twemproxy代码是一份优秀的c语言代码,为此,在twemproxy的代码中会大篇幅使用c指针。但是不论是普通类型的指针还是 阅读全文
posted @ 2017-01-12 11:17 Breeze0806 阅读(1512) 评论(0) 推荐(2) 编辑
摘要: 本篇将去探索twemproxy源码的主干流程,想来对于想要开始啃这份优秀源码生肉的童鞋会有不小的帮助。这里我们首先要找到 twemproxy正确的打开方式——twemproxy的文件结构,接着介绍twemproxy程序代码框架,最后介绍twemproxy程序的主干流程。主干流程是本章节的重中之重。这 阅读全文
posted @ 2017-01-09 23:25 Breeze0806 阅读(1042) 评论(0) 推荐(1) 编辑
摘要: twemproxy背景 在业务量剧增的今天,单台高速缓存服务器已经无法满足业务的需求, 而相较于大容量SSD数据存储方案,缓存具备速度和成本优势,但也存在数据安全性的挑战。为此搭建一个高速缓存服务器集群来进行分布式存储是十分必要的。 目前主流的高速缓存服务器是redis和memchache。而twe 阅读全文
posted @ 2017-01-09 15:38 Breeze0806 阅读(5479) 评论(2) 推荐(3) 编辑
摘要: 又是喜闻乐见的新坑,前面的mysql协议,当我在解读go-mysql包的时候,会重新讲到,至于Leetcode的更新会与go语言同步。关于这个redis的新坑,目前打算通过剖析twemproxy源码来间接介绍redis的协议,实现手段等等。下面先介绍一下我们的主角——twemproxy。 twemp 阅读全文
posted @ 2017-01-04 20:12 Breeze0806 阅读(362) 评论(0) 推荐(0) 编辑
摘要: mysql交互协议是开发mysql周边组件常用的协议,如JDBC,libmysql等等。 在此我们要认识到mysql交互协议其实是半双工的交互协议,至于为什么,这里就先挖个小坑,以后再填。 在探讨mysql交互协议的格式之前,我们要理清一个小问题,就是mysql交互协议会用到的基本数据类型。 1.整 阅读全文
posted @ 2016-11-17 12:33 Breeze0806 阅读(2893) 评论(0) 推荐(0) 编辑
摘要: 这次我们要探索更精细的binlog内容,上次讨论的Query_event和Rows_event肯定有让你疑惑不解的问题。Query_event中的status-vars环境变量有哪些,Rows_event的数据类型是什么,元数据又是个什么鬼东西,今天我们就来一一解答。 一、Query_event中的 阅读全文
posted @ 2016-11-09 18:32 Breeze0806 阅读(1050) 评论(0) 推荐(0) 编辑
摘要: 上次,我们仅仅把binlog做了一个概述,并没有去深入探索(1)binlog file究竟是怎么构成的?(2)binlog file的单元binlog events是怎么构成的?(3)我们能不能伪造出一个mysqlbinlog识别的binlog file? 当然,第三个问题看起来很cool,蛮有挑战 阅读全文
posted @ 2016-11-08 16:38 Breeze0806 阅读(1119) 评论(0) 推荐(1) 编辑
摘要: slave IO流程已经在http://www.cnblogs.com/onlyac/p/5815566.html中有介绍 这次我们要探索注册slave请求和dump请求的报文格式和主要流程。 一、注册slave请求 在slave IO连接完数据库后,slave IO接着在主库里注册自己,以便后续不 阅读全文
posted @ 2016-08-29 14:54 Breeze0806 阅读(1020) 评论(0) 推荐(0) 编辑
摘要: 最近看了slave IO的源码,发现slave IO的写relay log貌似是单线程单连接的,这让我有点小失望。 slave IO的主函数是handle_slave_io,处理流程如下: 图1 handle_slave_io处理流程 我们这次主要要完成safe_connect以及try_to_re 阅读全文
posted @ 2016-08-29 11:23 Breeze0806 阅读(1506) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 15 下一页