RadonDB深入學(xué)習(xí)系列-安裝
RadonDB深入學(xué)習(xí)
之前深入學(xué)習(xí)了一波xenon(MySQL高可用組件),近期打算深入學(xué)習(xí)一波Radon(MySQL中間件),將每日所學(xué)整理成一個(gè)系列文章,今天先來個(gè)簡單的入門。
RadonDB是一個(gè)開源、云原生的數(shù)據(jù)庫,支持無限伸縮和性能擴(kuò)展,支持分布式事務(wù),優(yōu)秀特性如下:
- 自動(dòng)Sharding
 - 支持審計(jì)
 - 支持并行:支持并行查詢,并行DML,并行DDL
 - 并行CHECKSUM TABLE: 結(jié)果同MySQL
 - 分布式事務(wù): Snapshot Isolation隔離級(jí)別
 - 分布式關(guān)聯(lián)查詢: Sort-Merge Join, Nested-Loop Join
 - 分布式全文索引
 - 多租戶
 - 支持Prepared SQL
 - JSON
 
git地址:https://github.com/radondb/radon
一、安裝
下載
- git clone https://github.com/radondb/radon
 
編譯安裝
首先前提是要有g(shù)o環(huán)境,怎么安裝的話自行g(shù)oogle一下
- cd radon
 - make build
 
編譯完成以后,會(huì)在bin文件夾下生成可執(zhí)行文件radon
二、配置文件
- {
 - "proxy": {
 - //元數(shù)據(jù)保存位置
 - "meta-dir": "meta/radon-meta",
 - //對(duì)外提供服務(wù)端口
 - "endpoint": ":13308",
 - //分布式事務(wù)二階段提交
 - "twopc-enable": false,
 - //最大連接數(shù)
 - "max-connections": 1024,
 - //限制最大結(jié)果集大小
 - "max-result-size": 1073741824,
 - //最大關(guān)聯(lián)行數(shù)
 - "max-join-rows": 32768,
 - //ddl超時(shí)時(shí)間
 - "ddl-timeout": 36000000,
 - //查詢超時(shí)時(shí)間
 - "query-timeout": 300000,
 - //api及多個(gè)成員通信端口
 - "peer-address": ":8080",
 - //慢查詢時(shí)間
 - "long-query-time": 5,
 - //流式處理內(nèi)存大小
 - "stream-buffer-size": 33554432,
 - //超時(shí)連接處理
 - "kill-idle-transaction": 60,
 - "autocommit-false-is-txn": false
 - },
 - //審計(jì)相關(guān)
 - "audit": {
 - "mode": "N",
 - "audit-dir": "meta/radon-audit",
 - "max-size": 268435456,
 - "expire-hours": 1
 - },
 - //這里定義了全局的分庫分別的大小
 - "router": {
 - "slots-readonly": 4096,
 - "blocks-readonly": 32
 - },
 - //日志等級(jí)
 - "log": {
 - "level": "INFO"
 - },
 - "monitor": {
 - "monitor-address": "0.0.0.0:13380"
 - },
 - //XA事務(wù)相關(guān)
 - "scatter": {
 - "xa-check-interval": 10,
 - "xa-check-dir": "./xacheck",
 - "XaCheckRetrys": 10
 - }
 - }
 
三、啟動(dòng)Radon
- ./radon -c radon.json > radon.log 2>&1 &
 
啟動(dòng)以后會(huì)報(bào)錯(cuò)如下:
- 2020/03/02 15:00:28.210378 privilege.go:96: [ERROR] plugin.privilege.update.privilege.error:backends.is.NULL
 
這個(gè)沒有關(guān)系,因?yàn)槲覀儸F(xiàn)在還有添加后端數(shù)據(jù)節(jié)點(diǎn),Radon檢測到?jīng)]有數(shù)據(jù)節(jié)點(diǎn)就會(huì)報(bào)錯(cuò)
四、添加數(shù)據(jù)節(jié)點(diǎn)
- 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
 
查看數(shù)據(jù)庫
- xucl@mysqldb 15:03: [(none)]> show databases;
 - +--------------------+
 - | Database |
 - +--------------------+
 - | information_schema |
 - | mysql |
 - | performance_schema |
 - | sys |
 - +--------------------+
 - 4 rows in set (0.00 sec)
 
創(chuàng)建數(shù)據(jù)
- xucl@mysqldb 15:07: [(none)]> create database zst;
 - Query OK, 1 row affected (0.01 sec)
 
六、目錄結(jié)構(gòu)
在我們之前配置文件中定義的meta-dir位置,在這個(gè)位置中,保存了radon相關(guān)的一些元數(shù)據(jù)文件
- [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保存的是后端節(jié)點(diǎn)的信息
- cat version.json |jq .
 - {
 - "version": 1583132882620481800
 - }
 
version.json保存的是版本信息
此外,在meta文件夾下還會(huì)存放跟數(shù)據(jù)庫表相關(guān)的元數(shù)據(jù)
- [root@izbp13wpxafsmeraypddyvz radon-meta]# ls
 - backend.json version.json zst
 
剛剛我們創(chuàng)建的zst的庫就以文件夾的形式存放,后續(xù)在zst下建的表也會(huì)存放在zst這個(gè)文件夾下。
















 
 
 

 
 
 
 