RadonDB深入学习系列-安装

数据库 MySQL
之前深入学习了一波xenon(MySQL高可用组件),近期打算深入学习一波Radon(MySQL中间件),将每日所学整理成一个系列文章,今天先来个简单的入门。

 RadonDB深入学习

之前深入学习了一波xenon(MySQL高可用组件),近期打算深入学习一波Radon(MySQL中间件),将每日所学整理成一个系列文章,今天先来个简单的入门。

RadonDB是一个开源、云原生的数据库,支持无限伸缩和性能扩展,支持分布式事务,优秀特性如下:

  •  自动Sharding
  •  支持审计
  •  支持并行:支持并行查询,并行DML,并行DDL
  •  并行CHECKSUM TABLE: 结果同MySQL
  •  分布式事务: Snapshot Isolation隔离级别
  •  分布式关联查询: Sort-Merge Join, Nested-Loop Join
  •  分布式全文索引
  •  多租户
  •  支持Prepared SQL
  •  JSON

git地址:https://github.com/radondb/radon

一、安装

下载 

  1. git clone https://github.com/radondb/radon 

编译安装

首先前提是要有go环境,怎么安装的话自行google一下   

  1. cd radon  
  2.    make build 

编译完成以后,会在bin文件夹下生成可执行文件radon

二、配置文件 

  1.  
  2.   "proxy": {  
  3.   //元数据保存位置  
  4.   "meta-dir": "meta/radon-meta",  
  5.   //对外提供服务端口  
  6.   "endpoint": ":13308",  
  7.   //分布式事务二阶段提交  
  8.   "twopc-enable": false,  
  9.   //最大连接数  
  10.   "max-connections": 1024,  
  11.   //限制最大结果集大小  
  12.   "max-result-size": 1073741824,  
  13.   //最大关联行数  
  14.   "max-join-rows": 32768,  
  15.   //ddl超时时间  
  16.   "ddl-timeout": 36000000,  
  17.   //查询超时时间  
  18.   "query-timeout": 300000,  
  19.   //api及多个成员通信端口  
  20.   "peer-address": ":8080",  
  21.   //慢查询时间  
  22.   "long-query-time": 5,  
  23.   //流式处理内存大小  
  24.   "stream-buffer-size": 33554432,  
  25.   //超时连接处理  
  26.   "kill-idle-transaction": 60,  
  27.   "autocommit-false-is-txn": false  
  28.   },  
  29.   //审计相关  
  30.   "audit": {  
  31.   "mode": "N",  
  32.   "audit-dir": "meta/radon-audit",  
  33.   "max-size": 268435456,  
  34.   "expire-hours": 1  
  35.   },  
  36.   //这里定义了全局的分库分别的大小  
  37.   "router": {  
  38.   "slots-readonly": 4096,  
  39.   "blocks-readonly": 32  
  40.   },  
  41.   //日志等级  
  42.   "log": {  
  43.   "level": "INFO"  
  44.   },  
  45.   "monitor": {  
  46.   "monitor-address": "0.0.0.0:13380"  
  47.   },  
  48.   //XA事务相关  
  49.   "scatter": {  
  50.   "xa-check-interval": 10,  
  51.   "xa-check-dir": "./xacheck",  
  52.   "XaCheckRetrys": 10  
  53.   }  
  54.   } 

三、启动Radon   

  1. ./radon -c radon.json > radon.log 2>&1 & 

启动以后会报错如下: 

  1. 2020/03/02 15:00:28.210378 privilege.go:96: [ERROR] plugin.privilege.update.privilege.error:backends.is.NULL 

这个没有关系,因为我们现在还有添加后端数据节点,Radon检测到没有数据节点就会报错

四、添加数据节点   

  1. curl -i -H 'Content-Type: application/json' -X POST -d '{"name": "backend1", "address": "127.0.0.1:3306", "user": "xucl", "password": "xuclxucl123", "max-connections":1024}' http://127.0.0.1:8080/v1/radon/backend 

添加完成以后,输出如下 

  1. HTTP/1.1 200 OK  
  2.   Date: Mon, 02 Mar 2020 07:02:32 GMT  
  3.   Content-Length: 0 

表示添加成功

五、登陆radon   

  1. mysql -h127.0.0.1 -uxucl -pxuclxucl123 -P13308 

查看数据库 

  1. xucl@mysqldb 15:03: [(none)]> show databases;  
  2.   +--------------------+  
  3.   | Database |  
  4.   +--------------------+  
  5.   | information_schema |  
  6.   | mysql |  
  7.   | performance_schema |  
  8.   | sys |  
  9.   +--------------------+  
  10.   4 rows in set (0.00 sec) 

创建数据 

  1. xucl@mysqldb 15:07: [(none)]> create database zst;  
  2.   Query OK, 1 row affected (0.01 sec) 

六、目录结构

在我们之前配置文件中定义的meta-dir位置,在这个位置中,保存了radon相关的一些元数据文件 

  1. [root@izbp13wpxafsmeraypddyvz radon-meta]# cat backend.json|jq .  
  2.   {  
  3.   "backends": [  
  4.   {  
  5.   "name": "backend1",  
  6.   "address": "127.0.0.1:3306",  
  7.   "user": "xucl",  
  8.   "password": "xuclxucl123",  
  9.   "database": "",  
  10.   "charset": "utf8",  
  11.   "max-connections": 1024,  
  12.   "role": 0  
  13.   }  
  14.   ] 
  15.   } 

backend.json保存的是后端节点的信息 

  1. cat version.json |jq .  
  2. "version": 1583132882620481800  

version.json保存的是版本信息

此外,在meta文件夹下还会存放跟数据库表相关的元数据   

  1. [root@izbp13wpxafsmeraypddyvz radon-meta]# ls    
  2.    backend.json version.json zst 

刚刚我们创建的zst的库就以文件夹的形式存放,后续在zst下建的表也会存放在zst这个文件夹下。 

 

责任编辑:庞桂玉 来源: 老叶茶馆
相关推荐

2016-09-18 19:07:33

Java值传递引用传递

2009-11-17 14:13:34

PHP配置

2015-09-29 08:57:46

javascript对象

2010-06-29 15:29:22

UML建模流程

2015-09-29 09:27:04

JavaScript对象

2010-09-28 09:22:34

DOM模型Html

2010-08-31 13:06:45

CSS

2010-03-30 13:37:14

Nginx负载均衡

2010-09-28 14:35:34

DOM遍历

2010-09-06 11:26:18

CSS伪类

2010-09-07 10:57:34

CSS伪类

2010-08-26 09:58:01

CSS clear

2024-01-03 10:15:59

Python函数

2010-09-25 14:38:18

Java内存分配

2010-08-11 09:29:25

FlexJava数据模型

2019-07-08 20:00:35

Linux内核模块

2023-12-12 13:13:00

内存C++编程语言

2010-08-02 12:56:51

Flex Cairng

2010-07-14 13:18:40

Perl开发工具

2010-07-06 10:41:22

UML对象及关系图
点赞
收藏

51CTO技术栈公众号