00:00
今天这堂课呢,我们就来学习一下,嗯,如何搭建这个嗯ten DB这个cluster分布式数据库。那么呢,这个呢,我们说白一点呢,其实是用的是玛莉亚TB的spider引擎。来做实现的这个分库分表,那么呢,这样这里呢,腾讯呢,是相当于是对spider引擎做了二次研发。然后增加了提,增加了一些功能,然后并且呢,提升了一些性能。那么我们这这堂课呢,就是来学习一下这个安装和部署的。目前呢,现在实现这个分控分表呢,是两种那种技术方案,那第一种呢,就是通过这个驱动,这DBC这个驱动,那么我们我们这里呢,是分为这个应用层,这依赖就是中间件,那么就是这个目前这是常用的就是沙丁JDBC,那这个一般研发比较多,因为是Java写的嘛,但是说它的缺点呢,就是不能应用在这个P2P和go这个项目里头,嗯,它的优点呢,就是它性能呃是非常好的,因为它减少一层网络交互,那第二种呢,就是那种代理类的中间件,那么我们常见的就是那个my cat。
01:15
呃,还有现在我们这堂课介绍的就是那个t spider这个引擎。那么呢,他的那个优点呢,就是说。支持任何语言啊,Java也好,PP啊,购物语言这都行。嗯,缺点呢,就是说。嗯,因为它多了多了一层网络的交互转发,那肯定它那个性能呃,损耗会略高一些。那今天呢,我们这堂课呢,就主要是来讲解的是这个中间层代理,代理类中间件。那么呢,我们先看一眼下面这个架构图啊。那么呢,就相当于就是我们来看这个逻辑表啊,逻辑表相当于就是一个mango DB里的那个config,那么它这里呢,只存一些路由信息。
02:05
还有一些分片的规则啊,相当于这个是无状态的,它真正的数据呢,是存储在后端这个物理表上。那么你可以看成那个,呃,那个副本级。啊,这真正数据是放在这里的啊。然后呢,我们给它放大了啊,把这把这个图放大以后呢,你就相当于就是这样的,相当于用户呢,比如说只访问一张user表,那至于后面呢,我们其实后面呢,可能会被这个哈希规则就取模规则打分了,比如打呃打成64张表,或者是128张表,那么对于用户来说呢,他。只访问这张逻辑表,然后逻辑表去把请求转发。啊,把转发到各个节点上,然后呢,把数据返回在逻辑表上做汇总啊去重,然后最终呢是返回给用户,它这是整体的一个架构图。
03:04
嗯,我们来说一下这个ten DB啊,目前这个整体的这个概述啊,啊刚才我们说了这个t spider呢,就相当于就是买l DB spider,他做了一次次二次研发,那么呢,它呢,相当于就是接受用户应用端,比如说是PP啊或呃那个Java或go啊,或者你用那个NAV k工具,Circleq药工具去连,然后呢,连到这个t spider t t spider以后呢,然后他把数据呢啊转发给后端。这个TDB呢,你可以换成这个MY啊,也可以换成普CA买TB,这都可以。然后呢,我们来说一下这个TDBCTL是干嘛使的,它是用来这个转发这个DDL的,相当于把DDL给改写一下。那么我这里呢?啊,是已经给大家写好了,就相当于什么呢,将用户创建的表啊,它自动转为为这个spider引擎,存储到这个spider节点上。
04:06
然后第二个他会把。呃,用户那个创建表啊,自动转为in no DB引擎,并且呢,按照哈基规则,创建表存储到这个后端的MYSQL或者是买压DB这个节点节点上,这就是它的一个功能啊。呃,如果是用户转发的DML操作,比如增删改查啊,这个TDBCTL它是不经过它的,它只路由DDL这个操作规则。这个是大家要注意点注意的一个地方,这是他们腾讯啊所增加的一个功能。嗯,这里呢,我把注意事项给写好了,因为它呢,并不能像这个mango DB那样式的那自动的去那个哈希,呃,自动的去做那个数据迁移。
05:01
那么你在初期呢,你要按照你那个容量规划好,比如说你要分多少张表,比如说128张表啊,256张表啊,啊这个你先事先规定好了,如果今后你要是变更的话,它这个数据相当于就得重新导了,是很费事的一个一个事啊,这里我把注意事项给大家写好了。然后呢,下面呢,我们就来看一眼,他这个是这个集群整体的这个集群,他们教这个啊ten DB拉,这个集群是怎么部署的。然后首先呢,你需要下载腾讯版的这个买RDB的t spider,他们是通过10.3.7做的二次开发,那么安装呢,其实就跟MYSQL5.6这种方式是一样的,你就这么装完了就就行了,然后呢,它这里呢,主要是增加了一些TSP引擎的一些参数啊,我把这些重要的参数呢。具体意思我都给你描述写好了,到时候大家就照抄就行了,这里呢,我们节省点时间,就不一一给大家介绍了,我们只看那个成品。
06:08
我们在。71.11上那部署了t spider引擎,还有那个腾讯那工具叫TDBCTL,我们先看一眼这个t spider这个配置文件。这块相当于跟买是一模一样的。啊,这个就相当于刚才。嗯,他们加的一些参数,那到时候我会把这个文件呢,都放存到这个附件里头啊,这个我们就先过,过完了往下走。然后呢,这个TDB这个安装他们呢,是在这个MYL5.7基础上做了做了一下改进,然后呢,你安装方式呢,是跟MYSQL5.7是一模一样的啊,这里呢,你只需要调整一下这个TDB这个重要参数。总共就三个啊,那具体含义我都给你写好了,我们来看一眼成品,我是在这台机器上。
07:04
同样一台机器上啊,部署了是TDBCTL。那么就是这几个啊,这个参数你就照着抄就行了。然后呢,这一步相当于就执行完了,执行完以后呢,我们要配置它,相当于我们要配置这个config,那添加一个路由,那么呢,我们首先呢,要在这个TDB这个节点上来配置。那么呢,我们呢,第一步呢,要先创建一个账号啊,这个t spider这个四个节点啊t spider,还有TDBCTL,还有后端的MYSQL,买LDB,那你都需要添加一个账号。来做那个通讯啊,如果你要是买8.0呢,你需要注意一下。这个认证方式是NAV k啊,就是native这个方式。那这里呢,我给大家看一眼,我这里已经创建完了。
08:05
TVB。啊,这个账号已经创建完了,密码是123456,我们来看一眼t spider。这个也创建完了,然后呢,我们再回到我这台机呢,后端买SQ节点呢是7.12和71.13。我们来看一下那账号。啊,这俩账号都创建完了。啊,这是它的权限,我们这里注意点啊,因为买CL8.0,它默认会开启这个SSSSL这个加密,加密这个认证方式,我们需要在配置文件里呢,要给它去掉,要跳过这个SSL这个加密啊。
09:14
这这里要注意一点,否则他通讯的时候会报错。这步做完以后呢,我们要需要添加路由了。啊,添加路由呢,我们要到这个TDBCPL这个管理节点上先添去添加。我到时候执行这个音sir的这项命令就好了,我这里先给大家,我这里做完了给大家看一眼。呃,User MySQL库下的有一张表叫server表。那么这个就是我的路由节点,你看后端是,你看这个是MYSO1,这个是MYSO2啊,这是啊。这个是t spider,然后这个是他那个管理节点t DB ctl u面密码端口号啊大家看好了,到时候我们。
10:07
嗯,回到这个t spider节点上。那同样的有一张由表。啊,我们手写首先呢,先给它清空了,这是我之前添加好了的。然后呢,我们执行这条命令,去刷新路由表。到时候呢,我们执行完这条命令以后呢,它会自动的同步到这个t spider节点上。啊就好了,如果呢,你添加错了以后呢,你可以给他删了。然后呢,再执行一下这个同步命令,它就会自动的去同步了。那么这两步呢,就已经我们就实验好了。
11:00
然后呢,怎么去这个分库分表中应用。我们来看一眼。这是我回到我的后端的mal节点啊,我现在是空机器。啊,这台机器呢,也是空机器,什么都没有,那么我们到我们要一定要访问这个t spider这个入口啊,端口是25000访问它,我们来看一眼啊,这里呢,我创建一个贺春阳这个数据库。我们回车以后,然后呢,它会自动的去分发。发给后后端节点。你看这里出现一个下划线零,这里呢是出现一个下划线一。然后呢,我们来。进入这个合成阳这个节点,这个数据库名,然后呢,我们来创建一张表,右侧表,我们要对这个色表进行那个取模,那么这里呢,你要指指定一个分片的ID啊,我这里叫UID,对这个用户的ID来做分片,那这里呢,一定要记住了,要可主键啊存放在一起。
12:08
我们来看一下它这个效果啊。执行。回车。啊,这里你看啊,我这里是印诺DB引擎的啊。然后呢,这里呢,它会通过这个TDBCTL工具呢。给你做一下分发。你看这里呢,它就会自动给你改写spider引擎,然后我们回到后端。那这里呢,就会给你改写为印度地币啊,这就是刚才我们介绍的。这个功能啊,它需要它是这个工具是主要是实现DDL这个改改写的。
13:03
然后呢,我们先来测试一下啊,我们去插入几条数据啊。ER。三。差十条吧。四。六。好,我们这里呢,来看这张逻辑表啊,它本身是不存数据的,它真正数据是在后端MYSQL里头。来好,你看它它这个自增ID,我们这个是自动帮我们创建好了,我们来看一眼这个啊。
14:01
后端的数据啊。你看后端数据,你看4567,然后看他。你看一二三八九十,你看现在我们通过这个哈希规则就把数据给打散了。啊,这个就叫分库分表。它这个作用就是起到一个中间件代理转发了啊,跟那个mango DB是差不多的。嗯,具体呢,大家呢,要详细的要看一下我这篇文档,主要要记好了一个比较关键的地方,就是它那个自增ID这个问题啊,你这里呢,比如说你第一个SP节点。那么你就按照这个配置,那第二个呢,第二个节点呢。啊,你这就改成二,第三个节点就改成三,它那个自增不长呢,这里呢是改成17,这样就保证它那个自增ID是不重复的。
15:12
那个分片,分片那个选取规则呢,你就按照你们的业务。啊,经常查询的字段来做这个分区。然后呢,这个这样就可以提升这个效率,然后呢,它用那个TSP的好处呢,就是说他在circle circle这个层面上没有任何的限制,比如说你去重啊,聚合呀,分组啊,你跨库关联呀,它任何都会那个都会那个实现,它不会有任何的去限制,所以说你前端应用迁过来以后呢,你不会更改一行代码。那我们这节课呢,主要是来讲解了一下这个怎么去安装部署的,然后呢,我们第二堂课呢,就来讲解一下怎么去迁移的,并且呢,与原来你那个主库没有做分布分表的,怎么去做那个同步复制。
16:00
好,那么我们这堂课呢,就将给大家演,呃,演示到这儿了。
我来说两句