dble是数据库扩展名吗?

 我来答
程序媛thon
2019-12-06 · 专注科技/教育/科普,优质创作者
程序媛thon
采纳数:135 获赞数:306

向TA提问 私信TA
展开全部

DBLE是一种分布式数据库。

  1. DBLE官方网站:https://opensource.actionsky.com

  2. DBLE官方项目:https://github.com/actiontech/dble

  3. DBLE下载地址:https://github.com/actiontech/dble/releases

爱可生云数据库
2020-04-07 · MySQL开源数据库领先者
爱可生云数据库
爱可生,金融级开源数据库和数据云服务整体解决方案提供商;优秀的开源数据库技术,企业级数据处理技术整体解决方案提供商;私有云数据库云服务市场整体解决方案提供商。
向TA提问
展开全部

 DBLE 项目资料



DBLE 是企业级开源分布式中间件,江湖人送外号 “MyCat Plus”;以其简单稳定,持续维护,良好的社区环境和广大的群众基础得到了社区的大力支持;


DBLE官方网站:

https://opensource.actionsky.com 

可以详细了解DBLE的背景和应用场景,本文不涉及到的细节都可在官方文档获得更细节都信息;对于刚了解到同学,可以以本文为快速入门基础

DBLE 官方项目:

https://github.com/actiontech/dble

如对源码有兴趣或者需要定制的功能的可以通过源码编译安装

DBLE 下载地址:

https://github.com/actiontech/dble/releases

DBLE 官方社区交流群:669663113


 安装 JDK 环境



DBLE 是使用 java 开发的,所以启动 DBLE 需要先在机器上安装 java 版本 1.8 或以上,并且确保 JAVA_HOME 参数被正确的设置;

这里通过 yum 源的方式安装 openjdk ,同学们可以自行 google jdk 的几百种安装方式,这里不再赘述;

bash# yum install java-1.8.0-openjdk

确认 java 环境已配置完成;

bash# java -versionopenjdk version "1.8.0_191"OpenJDK Runtime Environment (build 1.8.0_191-b12)OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)


 安装 DBLE


DBLE 的安装其实只要解压下载的目录就可以了,非常简单。

  • 通过此连接下载最新安装包:https://github.com/actiontech/dble/releases

  • 解压并安装 DBLE 到指定文件夹中

  • mkdir -p $working_dir  cd $working_dir  tar -xvf actiontech-dble-$version.tar.gz  cd $working_dir/dble/conf

  • 安装完成后,目录如下:

    请点击输入图片描述

    请点击输入图片描述

    配置 DBLE

    DBLE 的配置文件都在 conf 目录里面,这里介绍几个常用的文件:

    应用场景一:数据拆分

    ▽ 后端 MySQL 节点

    DBLE 的架构其实很好理解,DBLE 是代理中间件,DBLE 后面就是物理数据库。对于使用者来说,访问的都是 DBLE,不会接触到后端的数据库。

    我们先演示简单的数据拆分的功能。物理部署结构如下表:

    请点击输入图片描述

    备注:为了演示简单,这里将实例都部署在了一台机器上并用不同端口做区分,同学们也可以用三台机器来做环境搭建。

    在MySQL A和MySQL B中创建库表testdb.users来方便后续的验证,表结构如下:

    CREATE TABLE `users` (

    `id` int(11) NOT NULL,

    `user` varchar(20) DEFAULT NULL,

    PRIMARY KEY (`id`)

    ) ENGINE=InnoDB DEFAULT CHARSET=latin1

    ▽ server.xml

    server.xml 里可以配置跟 DBLE 自身相关的许多参数,这里重点只关注下面这段访问用户相关的配置,其他默认即可;

    第一段 “< system >” 为 DBLE 的服务端口(默认8066)和管理端口(默认9066)的配置

  • 管理端口只能接受 DBLE 的管理命令,这里不做展开

  • 服务端口即 DBLE 的业务访问端口,可以接受SQL语句

  • 第二段“< user >”配置管理理用户,默认为 man1,密码为 654321

  • 即可以通过 mysql -P9066 -h 127.0.0.1 -u man1 -p654321 来下发管理命令

  • 第三段“< user >”配置业务用户,配置了一个账号 test 密码 password,针对数据库 testdb,读写权限都有,没有针对表做任何特殊的权限,故把表配置做了注释

  • 即可以通过 mysql -P8066 -h 127.0.0.1 -utest -ppassword 下发 SQL 语句

  • ...

    <system>

    ...

    <!-- property name="serverPort">8066</property> -->

    <!--<property name="managerPort">9066</property> -->

    ...

    </system>

    <user name="man1">

    <property name="password">654321</property>

    <property name="manager">true</property>

    <!-- manager user can't set schema-->

    </user>

    <user name="test">

    <property name="password">password</property>

    <property name="schemas">testdb</property>

    <!-- table's DML privileges  INSERT/UPDATE/SELECT/DELETE -->

    <!--

    <privileges check="false">

    <schema name="TESTDB" dml="0110" >

    <table name="tb01" dml="0000"></table>

    <table name="tb02" dml="1111"></table>

    </schema>

    </privileges>

    -->

    </user>

    ...

    请点击输入图片描述

    ▽ schema.xml

    schema.xml 是最主要的配置项,我们将 users 用户表按照取模的方式平均拆分到了 MySQL A 和 MySQL B 两个数据数据库实例上, 详细请看配置文件:

    <?xml version="1.0"?>

    <!DOCTYPE dble:schema SYSTEM "schema.dtd">

    <dble:schema xmlns:dble="http://dble.cloud/">

    <schema name="testdb">

    <table name="users" primaryKey="ID"  dataNode="dn1,dn2" rule="sharding-by-mod2" />

    </schema>

    <!-- 分片配置 -->

    <dataNode name="dn1" dataHost="Group1" database="testdb"/>

    <dataNode name="dn2" dataHost="Group2" database="testdb"/>

    <!-- 物理数据库配置 -->

    <dataHost name="Group1" maxCon="1000" minCon="10" balance="0" switchType="1" slaveThreshold="100">

    <heartbeat>show slave status</heartbeat>

    <writeHost host="MySQLA" url="172.16.3.1:14014" user="test" password="password"/>

    </dataHost>

    <dataHost name="Group2" maxCon="1000" minCon="10" balance="0" switchType="1" slaveThreshold="100">

    <heartbeat>show slave status</heartbeat>

    <writeHost host="MySQLA" url="172.16.3.1:14015" user="test" password="password"/>

    </dataHost>

    </dble:schema>

  • 参数说明 

  • · schema 逻辑数据库信息,此数据库为逻辑数据库,name 与 server.xml 中 schema对应; 
    · dataNode 分片信息,此为分片节点的定义;分片名字和schema的dataNode对应;分片与下面的dataHost 物理实例进行关联;

    · dataHost 物理实例组信息,dataHost下可以挂载同组的读写物理实例节点,实现高可用或者读写分离;

    每个节点的重点属性逐一说明:

  • schema:

  • 属性说明 :

    · name 逻辑数据库名,与 server.xml 中的 schema 对应; 

    · table:

    子属性说明 :

    -  name 表名,物理数据库中表名

    -  dataNode 表存储到哪些节点,多个节点用逗号分隔

    -  primaryKey 主键,用于主键缓存和自增识别,不作主键约束

    -  autoIncrement 是否自增 

    -  rule 分片规则名,具体规则下文 rule 详细介绍

  • dataNode

  • 属性说明:

    · name 节点名,与 table 中 dataNode 对应

    · datahost 物理实例组名,与 datahost 中 name 对应

    · database 物理数据库中数据库名;

  • dataHost

  • 属性说明:

    · name 物理数据库名,与 dataNode 中 dataHost 对应 

    · balance 均衡负载的方式 

    · switchtype 写节点的高可用切换方式;等于1时,心跳不健康发生切换

    · heartbeat 心跳检测语句,注意语句结尾的分号要加

    · writehost 写物理实例

    子属性说明 :

    -  host 物理实例名

    -  url 物理库IP+Port

    -  user 物理库用户

    -  password 物理库密码

    ▽ rule.xml

    主要关注 rule 属性,rule 属性的内容来源于 rule.xml 这个文件,DBLE 支持多种分表分库的规则,基本能满足你所需要的要求。

    table 中的 rule 属性对应的就是 rule.xml 文件中 tableRule 的 name, 具体有哪些拆分算法实现,建议还是看下文档。我这里选择的 sharding-by-mod2,是 hash算法的特例,就是将数据平均拆分。因为我后端是两台物理库,所以 rule.xml中hashmod2 对应的 partitionCountt 为 2 ,配置如下:

  • <tableRule name="sharding-by-mod2"><rule><columns>id</columns><algorithm>hashmod2</algorithm></rule></tableRule><function name="hashmod2" class="Hash"><property name="partitionCount">2</property><property name="partitionLength">1</property></function>


  • 更多内容点击此处网页链接

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
云南新华电脑学校
2020-01-06 · 百度认证:云南新华电脑职业培训学校官方账号
云南新华电脑学校
云南新华电脑学校是经云南省教育厅批准成立的省(部)级重点计算机专业学校,采用三元化管理模式,教学设备先进,师资雄厚学生毕业即就业,学院引进了电商企业入驻,创建心为电商创业园区,实现在校即创业
向TA提问
展开全部
研究现状
mysql-proxy

mysql-proxy是mysql官方提供的mysql中间件服务,上游可接入若干个mysql-client,后端可连接若干个mysql-server。

它使用mysql协议,任何使用mysql-client的上游无需修改任何代码,即可迁移至mysql-proxy上。

mysql-proxy最基本的用法,就是作为一个请求拦截,请求中转的中间层:

进一步的,mysql-proxy可以分析与修改请求。拦截查询和修改结果,需要通过编写Lua脚本来完成。

mysql-proxy允许用户指定Lua脚本对请求进行拦截,对请求进行分析与修改,它还允许用户指定Lua脚本对服务器的返回结果

进行修改,加入一些结果集或者去除一些结果集均可。

所以说,根本上,mysql-proxy是一个官方提供的框架,具备良好的扩展性,可以用来完成:sql拦截与修改、性能分析与监控、读写分离、请求路由。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式