揭秘Sharding-Proxy——面向DBA的数据库中间层

你们好,我今天想跟你们分享的是Sharding-Sphere的第二个产品Sharding-Proxy。前端

在上个月亮相的Sharding-Sphere 3.0.0.M1中首次发布了Sharding-Proxy,但愿此次分享可以经过几个优化实践,帮助你们管中窥豹,从几个关键细节想象出Sharding-Proxy的全貌。至于更详细的MySQL协议、IO模型、Netty等议题,之后有机会再和你们专题分享。数据库

1、Sharding-Proxy简介后端

1Sharding-Proxy概览架构

Sharding-Proxy定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。目前先提供MySQL版本,它能够使用任何兼容MySQL协议的访问客户端操做数据(如:MySQLCommandClient、MySQLWorkbench等),对DBA更加友好。框架

d47e62d2b349aca45e42305ed6714efbe5ed61d9对应用程序彻底透明,可直接当作MySQL使用;ide

d47e62d2b349aca45e42305ed6714efbe5ed61d9适用于任何兼容MySQL协议的客户端。优化

76dbde3d4b1693d9b9255b3c357b5338379483f7

与其余两个产品(Sharding-JDBC、Sharding-Sidecar)的对比:3d

c912528c7a93fe669fd3322e9ee962b7b9bbe3bd

它们既能够独立使用,也能够相互配合,以不一样的架构模型、不一样的切入点,实现相同的功能目标。而其核心功能,如数据分片、读写分离、柔性事务等,都是同一套实现代码。代理

举个例子,对于仅使用Java为开发技术栈的场景,Sharding-JDBC对各类Java的ORM框架支持度很是高,开发人员能够很是便利地将数据分片能力引入到现有的系统中,并将其部署至线上环境运行,而DBA就能够经过部署一个Sharding-Proxy实例,对数据进行查询和管理。blog

2Sharding-Proxy架构

a130df724b10351f97d8de3a9a75edfb9f5a6101

整个架构能够分为前端、后端和核心组件三部分来看:

相关文章
相关标签/搜索