[ShardingSphere] sharding
本文章基于最新版5.0.0-。
伪装这个词比较有意思。记得看过这么一个电影,电影名称不记得了,但是电影场景大概是讲的男主角为了盗宝,需要潜入一个全副武装的大楼。这个大楼有着非常先进的门禁系统,通过ID卡和人脸识别才能进入。男主角偷取到一个工作人员的ID卡,找到黑客帮他造了一张ID卡,完美的骗过门禁系统进入到大楼偷到秘宝。这里就需要伪装,满足系统的某些协议才能通过验证系统。
-proxy也做了类似的事情。和电影不同的是,做一个mysql的“黑客”需要先清楚它工作的原理,好在mysql官网中提供了很多相关资料,在-proxy源码中对于MySQL相关的代码都有注释说明这么实现的原因,例如MySQL请求包类型:
接下来这篇文章站在代码的角度分析-proxy是如何进行伪装的。
一、Netty
因为把更多的时间花在的研读-proxy的内核方面,因此关于这块,我并没有进行详细的研究,只知道netty是一个高性能的客户端/服务器框架,它可以实现各种协议的服务端,而-proxy就是以netty为基础实现网络交互。
网上搜了一些关于netty的简单的使用,对照-proxy,大致对-proxy的流程有了一个大概的思路。
开启服务
-Proxy 启动流程最核心的是通过 izer 加载了 (编解码) 和 (业务处理器) 两个处理器。这两个处理的具体工作都委托给了 完成,有 MySQL 和 两个实现。
未完待续…
tags:
netty