本文章基于最新版5.0.0- 。
伪装这个词比较有意思 。记得看过这么一个电影,电影名称不记得了,但是电影场景大概是讲的男主角为了盗宝,需要潜入一个全副武装的大楼 。这个大楼有着非常先进的门禁系统,通过ID卡和人脸识别才能进入 。男主角偷取到一个工作人员的ID卡,找到黑客帮他造了一张ID卡,完美的骗过门禁系统进入到大楼偷到秘宝 。这里就需要伪装,满足系统的某些协议才能通过验证系统 。
-proxy也做了类似的事情 。和电影不同的是,做一个mysql的“黑客”需要先清楚它工作的原理,好在mysql官网中提供了很多相关资料,在-proxy源码中对于MySQL相关的代码都有注释说明这么实现的原因,例如MySQL请求包类型:
文章插图
【[ShardingSphere] sharding】接下来这篇文章站在代码的角度分析-proxy是如何进行伪装的 。
一、Netty
因为把更多的时间花在的研读-proxy的内核方面,因此关于这块,我并没有进行详细的研究,只知道netty是一个高性能的客户端/服务器框架,它可以实现各种协议的服务端,而-proxy就是以netty为基础实现网络交互 。
网上搜了一些关于netty的简单的使用,对照-proxy,大致对-proxy的流程有了一个大概的思路 。
文章插图
开启服务
-Proxy 启动流程最核心的是通过 izer 加载了 (编解码) 和 (业务处理器) 两个处理器 。这两个处理的具体工作都委托给了完成,有 MySQL 和两个实现 。
未完待续…
- 本周将有两波冷空气来袭 京津冀等地周末或迎今冬初雪
- 上海今日有小雨 本周最高气温将冲刺22℃
- OpenCV入门之基本知识
- 【Android -- 开源库】数据解析 Gson 的基本使用
- 手动方法 将GPUImage库加入到本地项目中
- 一 MONGODB 监控那些基本 “点” 到东拉西扯
- 2022年笔记本电脑市场总结:华为份额激增95%,联想、苹果均下滑
- linux网络编程 5、线程池、本地socket、offset函数、UDP通信
- 炉石传说多久一个版本 炉石传说一年更新几个版本
- 本人社团电商经验实谈,全文10177字,纯手工码字,不喜您勿喷