30分钟构建专属数据库中间件

什么是数据库中间件


数据库中间件是介于client端和数据库服务端之间的中间层服务, 对于Client端透明, 提供对数据库的增强功能服务。 如下图所示:



为什么要使用数据库中间件


1) 独立与某个应用, 为整个IT系统提供数据库层面的功能增强。

2) 与开发语言,软件架构无关。

为了满足用户的个性化需求,Datahekr提供了Plugin机制, 
允许用户使用JAVA编写Plugin. 将Datahekr数据库中间件与第三方系统集成,并对SQL进行订制化的路由。

1. 创建代理服务器


1) 访问 www.datahekr.com 注册用户并登录进入系统,打开<我的服务器>页面。新建一个代理服务器








2) 下载Datahekr代理程序,解压并执行 startup.bat (Windows) / startup.sh (Linux)。







注意1:运行Datahekr代理程序的计算机必须能够访问外网,否则无法与中心服务器通信,且无法启动成功。(出于安全考量,只需要开启出站权限即可,不需要入站权限)


注意2:每个代理服务器对应下载的datahekr.zip文件包含了唯一的通信密码,所以不同代理服务器不能混用彼此的datahekr.zip文件,否则会产生未知错误


注意3:Datahekr的运行依赖JAVA运行环境,请先行安装JDK / JRE,  7.0 或以上版本。


3) 刷新代理服务器状态,确认代理服务器启动成功,





2. 编写第一个Plugin


1) 新建JAVA工程,加入Datahekr/Plugin/datahekr-plugin.jar 的引用。加入common-lang的引用







2)  新建类TestSysoutPlugin,实现 DBProxyPlugin 接口




3) 编译生成jar文件,将相关jar文件放入 Datahekr/plugin 目录





3. 创建代理通道


1) 进入系统,打开<代理通道设置>页面。新建一个代理通道




2) 输入名称,目标数据库地址等信息, 填写Plugin的类全名




3) 启动代理通道







4. 验证Plugin 运行


1) 使用代理服务器内网IP,代理通道的代理端口连接数据库,验证数据库能正确访问




2) 察看Datahekr命令行控制台,确认Plugin 正常输出了Log信息



5. 通过Plugin, 我们能做些什么


在Plugin中,我们能够得到的信息有 (如上图所示):
当前 Connection信息, 包括 Connection的用户名,默认数据库等。
执行SQL信息, 包括SQL的文本, 动态参数等。

通过 proxyToServer 方法的返回值,我们能够:
1. 拒绝该SQL的执行, 并返回自定义 error message 给数据库客户端。
2. 控制该SQL的路由目标是 Master / Slave。

通过自定义 Plugin,我们能够:
1. 记录SQL执行log到特定的存储目标中。
2. 分析SQL, 拒绝特定的SQL执行。
3. 路由特定的SQL到 Slave, 降低数据库负载。
4. 在接收到SQL时, 调用业务方法, 从而将数据库中间件与业务系统集成。


6. 注意事项


1) 为了减少线程切换所带来的性能开销,Datahekr使用Worker线程直接调用Plugin,所以请避免在Plugin中执行太耗时的操作。避免影响Datahekr的运行性能。


2) 对于必需的耗时操作。推荐使用缓存,异步,批处理,MQ等处理方式,尽量减少Plugin的执行耗时。


3) 如果Plugin的执行出现异常,Datahekr将记录并忽略该异常, 并继续后续操作。


4) 如果Datahekr创建Plugin时出现异常, 则Datahekr代理通道无法启动,请查看datahekr/log 目录下的log信息。



7. 更近一步


想了解更高级的Plugin使用技巧?  请访问 www.datahekr.com,   免费注册即获得50个数据库并发连接。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值