RadonDB深入学习
之前深入学习了一波xenon(MySQL高可用组件),近期打算深入学习一波Radon(MySQL中间件),将每日所学整理成一个系列文章,今天先来个简单的入门。
RadonDB是一个开源、云原生的数据库,支持无限伸缩和性能扩展,支持分布式事务,优秀特性如下:
git地址:https://github.com/radondb/radon
一、安装
下载
- git clone https://github.com/radondb/radon
编译安装
首先前提是要有go环境,怎么安装的话自行google一下
- cd radon
- make build
编译完成以后,会在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 -c radon.json > radon.log 2>&1 &
启动以后会报错如下:
- 2020/03/02 15:00:28.210378 privilege.go:96: [ERROR] plugin.privilege.update.privilege.error:backends.is.NULL
这个没有关系,因为我们现在还有添加后端数据节点,Radon检测到没有数据节点就会报错
四、添加数据节点
- 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
添加完成以后,输出如下
- HTTP/1.1 200 OK
- Date: Mon, 02 Mar 2020 07:02:32 GMT
- Content-Length: 0
表示添加成功
五、登陆radon
- mysql -h127.0.0.1 -uxucl -pxuclxucl123 -P13308
查看数据库
- xucl@mysqldb 15:03: [(none)]> show databases;
- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | mysql |
- | performance_schema |
- | sys |
- +--------------------+
- 4 rows in set (0.00 sec)
创建数据
- xucl@mysqldb 15:07: [(none)]> create database zst;
- Query OK, 1 row affected (0.01 sec)
六、目录结构
在我们之前配置文件中定义的meta-dir位置,在这个位置中,保存了radon相关的一些元数据文件
- [root@izbp13wpxafsmeraypddyvz radon-meta]# cat backend.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保存的是后端节点的信息
- cat version.json |jq .
- {
- "version": 1583132882620481800
- }
version.json保存的是版本信息
此外,在meta文件夹下还会存放跟数据库表相关的元数据
- [root@izbp13wpxafsmeraypddyvz radon-meta]# ls
- backend.json version.json zst
刚刚我们创建的zst的库就以文件夹的形式存放,后续在zst下建的表也会存放在zst这个文件夹下。
ajax传送json格式数据,关键是指定contentType,data要是json格式 如果是restful...
一. RabbitMQ 简介 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用...
Afrikaans:af Albanian:sq Basque:eu Belarusian:be Bulgarian:bg Catalan:ca Ch...
如果你想对使用手机,平板电脑和辅助技术的用户隐藏某些内容,而只对键盘用户显...
Linux 发行版的爱好者们又有全新的 Linux 可以体验了,日前一款名为 TeLOS 的 Li...
一、导读 本文主要介绍Redhat7.6系统安装oracle 12201版本RAC的一些坑以及避坑方...
今天给大家分享四个在实际开发中,比较实用的SQL Server脚本函数,希望对大家能...
Eval 计算一个表达式的值并返回结果。 语法:[result = ]eval_r(expression_r) e...
本文分享自华为云社区《 架构可视化支撑系统演进探索 》原文作者无名小溪。 随着...
最近在和团队规划OKR目标的时候,我们讨论了很多问题,我先抛砖引玉,列举了一些...