该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
什么是MySQL代理?
MySQL代理是介于client端和MySQL服务端中间层服务,如下图所示:
为什么要使用代理?
大部人都知道使用代理的好处,毕竟,随着互联网越来越普及,互联网系统越来越庞大、复杂,性能要求越来越高,为了让整个系统具有更好的扩展性、更高的性能、解藕等多种特性,在数据库层面引入代理层是目前互联网系统常见的架构设计方案。总的来说,在数据库层面引入代理会带来以下好处:
· 将不同类型的请求分发的不同的server以此实现读写分离、负载均衡;
· 来自不同客户端的请求分发到不同的server实现后端多租户数据库服务,当然,类似的原理还可以实现分库分表、一个请求写到多个server或者不同的源端如消息队列;
· 监控统计客户端的请求情况,请求分布统计、请求类型等,以此来优化数据库的使用;
· 总之,可以实现你想要的诸多功能。
如何用Java快速实现一个最简单的代理呢?
首先,准备开发工具套件,我们并不会引入过多工具包,仅仅需要:
· Java8
· Vert.x 3
如果你是用Maven做为项目管理工具,请将Vert.x 3引入:
io.vertx
vertx-core
3.3.2
代码实现:
package com.maxleap.mysqlproxy;
import io.vertx.core.AbstractVe