博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
社区投稿 | DBLE rule.xml 配置解析
阅读量:6325 次
发布时间:2019-06-22

本文共 1948 字,大约阅读时间需要 6 分钟。

文章来源:爱可生云数据库

作者:余朝飞

DBLE项目介绍

DBLE官方网站:

可以详细了解DBLE的背景和应用场景,本文不涉及到的细节都可在官方文档获得更细节都信息;对于刚了解到同学,可以以本文为快速入门基础
DBLE官方项目:
如对源码有兴趣或者需要定制的功能的可以通过源码编译
DBLE下载地址:
建议下载最新的releases版本,下载tar压缩包即可,如有源码编译需求的,可以下载源码包

DBLE的主要配置文件

上一篇"DBLE Schema.xml 配置解析"详细介绍了DBLE之中关于Scema.xml的配置,本篇文章将继续为大家讲解一下DBLE中Rule.xml文件的配置。

DBLE的配置文件都在conf目录里面,常用的几个配置文件如下:

文件 说明
server.xml DBLE server相关参数定义,包括dble性能,定时任务,端口,用户配置等;本文主要涉及到访问用户的配置
schema.xml DBLE具体分片定义,规定table和schema以及dataNode之间的关系,指定每个表格使用哪种类型的分片方法,定义每个dataNode的连接信息等
rule.xml DBLE实际用到的分片算法的配置

rule.xml配置解析

其中rule.xml是日常配置分片算法的时候最常用到的配置文件,我们通过思维导图的方式给大家整理了DBLE的rule.xml的配置,需要注意的是思维导图不能代替看文档,导图只能起着概括归纳的作用,详细的细节还请参考官方文档。

rule.xml举例

从分片的数据在各个数据节点分布来看,分片可分为连续分片和离散分片,连续分片就是将一定范围内的数据全部分布在某一DataNode, 离散分布则是通过hash取模等方法将数据打散较为均匀地分布在各个DataNode。

分片 连续分片 离散分片
优点 并发访问能力有限,扩容迁移代价小 并发访问能力增强 范围条件查询性能提升
缺点 存在数据热点的可能性,并发访问能力受限于单一或少量DataNode . 数据扩容比较困难,需要对整体数据做重新分布。
举例 date,numberrange hash, stringhash, patternrange
注:hash,patternrange分片方式如果配置分片区间足够宽的话也是可以当做连续分片的。

以下我以PatternRange算法为例,讲解一下如何配置该拆分算法,比如当前有一张表tasK_log已经有1000万的数据,这张表又因为需要和其他表进行关联查询,单表太大进行关联时异常缓慢,因此我们需要对这张表做拆分, 将这张表分别放在三个分片上,dn1,dn2,dn3。

  • schema.xml中的配置如下
  • rule.xml中配置如下:
id
three_node_range
partition.txt
1024
0
  • mapfile partition.txt定义如下:
[root@localhost ~]# cat partition.txt 0-255=0256-511=1512-1024=2

查找路由时,将id字段与patternValue取模,即计算M = id % patternValue,

  • 如果M在0-255之间,在数据落在dn1分片。
  • 如果M在256-511之间,在数据落在dn2分片。
  • 如果M在512-1024之间,则数据落在dn3分片。
  • 如果都匹配不上,则落在默认节点defaultNode dn1分片(理论上在这个例子中是不可能匹配不上的)

关于每一种拆分算法的详细介绍请参加官方文档介绍。

总结

rule.xml定义实际用到的拆分算法以及该拆分算法对应到的逻辑库使用使用算法,熟悉各种拆分算法的详细配置及其适用场景,才方便我们在众多数据拆分场景选择并配置合适的拆分规则,同时这也是适用分库分表中间件的第一步,并且实地演示了一个小小的拆分例子,使用到了patternrange算法。

将表的详细拆分规则写在配置中,这是一种很"傻"的方式,但是这也是万不得已的一种选择,如果不通过配置文件的方式告诉中间件这些信息,那么中间件就无从得知底层具体的数据分布情况,也就达不到我们最终想要分库分表的目的了。

图片描述

转载地址:http://vpmaa.baihongyu.com/

你可能感兴趣的文章
支持向量机---线性支持向量机与软间隔最大化
查看>>
puppet自动化管理工具学习之文件
查看>>
Ubuntu安装RPM格式软件包
查看>>
SQL Server中的临时表和表变量 Declare @Tablename Table【转】
查看>>
汇编语言指令英文全称
查看>>
pure-ftpd脚本安装
查看>>
Linux NC 命令
查看>>
ThinkingInJava_6
查看>>
抓取安居客二手房经纪人数据,python爬虫自动翻页
查看>>
Office 2013 正式版--英文版/简体中文版下载(正版验证)
查看>>
iOS程序框架设计之皮肤切换功能 (白天与夜间效果)
查看>>
iptables
查看>>
Project facet Java 6.0 is not supported by target runtime Apache Tomcat v5.5.
查看>>
一个全新的拖拽分页—艺术啊
查看>>
Linux学习之CentOS(三十)--SELinux安全系统基础
查看>>
LVS+keepalived高可用群集
查看>>
jQuery库简介
查看>>
win7系统设置电脑不待机状态的操作方法
查看>>
nginx+php安装配置
查看>>
LAMP+Centos6.5上安装zabbix
查看>>