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
一、安装
下载
gitclonehttps://github.com/radondb/radon
编译安装
首先前提是要有go环境,怎么安装的话自行google一下
cdradon
makebuild
编译完成以后,会在bin文件夹下生成可执行文件radon
二、配置文件
{
"proxy":{
//元数据保存位置
"meta-dir":"meta/radon-meta",
//对外提供服务端口
"endpoint":":13308",
//分布式事务二阶段提交
"twopc-enable":false,
//最大连接数
"max-connections":1024,
//限制最大结果集大小
"max-result-size":1073741824,
//最大关联行数
"max-join-rows":32768,
//ddl超时时间
"ddl-timeout":36000000,
//查询超时时间
"query-timeout":300000,
//api及多个成员通信端口
"peer-address":":8080",
//慢查询时间
"long-query-time":5,
//流式处理内存大小
"stream-buffer-size":33554432,
//超时连接处理
"kill-idle-transaction":60,
"autocommit-false-is-txn":false
},
//审计相关
"audit":{
"mode":"N",
"audit-dir":"meta/radon-audit",
"max-size":268435456,
"expire-hours":1
},
//这里定义了全局的分库分别的大小
"router":{
"slots-readonly":4096,
"blocks-readonly":32
},
//日志等级
"log":{
"level":"INFO"
},
"monitor":{
"monitor-address":"0.0.0.0:13380"
},
//XA事务相关
"scatter":{
"xa-check-interval":10,
"xa-check-dir":"./xacheck",
"XaCheckRetrys":10
}
}
三、启动Radon
./radon-cradon.json>radon.log2>&1&
启动以后会报错如下:
2020/03/0215:00:28.210378privilege.go:96:[ERROR]plugin.privilege.update.privilege.error:backends.is.NULL
这个没有关系,因为我们现在还有添加后端数据节点,Radon检测到没有数据节点就会报错
四、添加数据节点
curl-i-H'Content-Type:application/json'-XPOST-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
添加完成以后,输出如下
HTTP/1.1200OK
Date:Mon,02Mar202007:02:32GMT
Content-Length:0
表示添加成功
五、登陆radon
mysql-h127.0.0.1-uxucl-pxuclxucl123-P13308
查看数据库
[email protected]:03:[(none)]>showdatabases;
+--------------------+
|Database|
+--------------------+
|information_schema|
|mysql|
|performance_schema|
|sys|
+--------------------+
4rowsinset(0.00sec)
创建数据
[email protected]:07:[(none)]>createdatabasezst;
QueryOK,1rowaffected(0.01sec)
六、目录结构
在我们之前配置文件中定义的meta-dir位置,在这个位置中,保存了radon相关的一些元数据文件
[[email protected]]#catbackend.json|jq.
{
"backends":[
{
"name":"backend1",
"address":"127.0.0.1:3306",
"user":"xucl",
"password":"xuclxucl123",
"database":"",
"charset":"utf8",
"max-connections":1024,
"role":0
}
]
}
backend.json保存的是后端节点的信息
catversion.json|jq.
{
"version":1583132882620481800
}
version.json保存的是版本信息
此外,在meta文件夹下还会存放跟数据库表相关的元数据
[[email protected]]#ls
backend.jsonversion.jsonzst
刚刚我们创建的zst的库就以文件夹的形式存放,后续在zst下建的表也会存放在zst这个文件夹下。
电子消费 21-04-08
电子消费 21-04-08
数码 21-04-08
电子消费 21-04-08
数码 21-04-08
前沿动态 21-04-08
热点 21-04-08
热点 21-04-08
企业前沿 21-04-08
企业前沿 21-04-08
前沿动态 21-04-08
业界 21-04-08
数码 21-04-08
热点 21-04-08
电商 21-04-08
电商 21-04-08
电商 21-04-08
业界 21-04-08
国际新闻 21-04-08
企业前沿 21-04-08