数据库中间件 Cetus 2.3.6 分库版

article/2025/9/23 19:19:14

 

  • 数据库初始化

 

#cetus
192.168.10.243#数据库节点192.168.10.250
192.168.10.251
192.168.10.252
192.168.10.253#四台数据库初始化数据库和表
create database if not exists proxy_heart_beat; use proxy_heart_beat; 
CREATE TABLE if not exists tb_heartbeat ( p_id varchar(128) NOT NULL , p_ts timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), PRIMARY KEY (p_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;create database employees;
use employees;
#hash
CREATE TABLE `dept_emp` (`id` int(11) NOT NULL AUTO_INCREMENT,`emp_no` int(11) DEFAULT NULL,`datetime` datetime DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
delete * from dept_emp;#range
CREATE TABLE `employees` (`id` int(11) NOT NULL AUTO_INCREMENT,`emp_no` int(11) DEFAULT NULL,`datetime` datetime DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;#datetime range
CREATE TABLE `purchase` (`id` int(11) NOT NULL AUTO_INCREMENT,`t_time` datetime DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;#只在250执行测试单点全局表
CREATE TABLE `regioncode` (`id` int(11) NOT NULL AUTO_INCREMENT,`emp_no` int(11) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

  • 安装

 

yum install cmake gcc glib2-devel flex mysql-devel gperftools-libs zlib-devel -y
cd /tmp
wget https://github.com/cetus-tools/cetus/archive/v2.3.6.tar.gz
tar -xvf v2.3.6.tar.gz
cd  cetus-2.3.6
mkdir build/
cd build/
CFLAGS='-g -Wpointer-to-int-cast' cmake ../ -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr/local/cetus -DSIMPLE_PARSER=OFF
make install
cp /tmp/cetus-2.3.6/scripts/cetus.service  /etc/init.d/cetus
#修改配置文件
/etc/init.d/cetus
#注意CETUS_HOME,CETUS_CONF,CETUS_CONF配置的和配置文件中一样
#删除
cetus_pid=`sed '/^pid-file=/!d;s/.*=//' ${CETUS_CONF}`
if [ "$cetus_pid" != "" ];thenCETUS_PID=$cetus_pid
ficetus_daemon=`sed '/^daemon=/!d;s/.*=//' ${CETUS_CONF}`
if [ "$cetus_daemon" != "" ];thenCETUS_DAEMON=$cetus_daemon
ficetus_log=`sed '/^log-file=/!d;s/.*=//' ${CETUS_CONF}`
if [ "$cetus_log" != "" ];thenCETUS_LOG=$cetus_log
fi#
systemctl daemon-reload

 

  • 配置

 

#配置
cat >> /usr/local/cetus/conf/users.json << EOF
{"users":	[{"user":	"cetus_app","client_pwd":	"cetus_app","server_pwd":	"cetus_app"}, {"user":	"cetus_app1","client_pwd":	"cetus_app1","server_pwd":	"cetus_app1"}]
}
EOF
#使用默认
cat >> /usr/local/cetus/conf/variables.json << EOF
{"variables": [{"name": "profiling","type": "int","allowed_values": ["*"],"silent_values": ["*"]},{"name": "sql_mode","type": "string-csv","allowed_values":  ["STRICT_TRANS_TABLES","NO_AUTO_CREATE_USER","NO_ENGINE_SUBSTITUTION"]},{"name": "connect_timeout","type": "string","allowed_values": ["*"],"silent_values": ["10", "100"]}]
}
EOF
cat >> /usr/local/cetus/conf/sharding.json << EOF
{"vdb": [{"id": 1,"type": "int","method": "hash","num": 8,"partitions": {"data1": [0,1], "data2": [2,3], "data3": [4,5], "data4": [6,7]}},{"id": 2,"type": "int","method": "range","num": 0,"partitions": {"data1": 100000, "data2": 200000, "data3": 300000,"data4": 400000}},{"id": 3,"type": "datetime","method": "range","num": 0,"partitions": {"data1": "2019-03-25 00:00:00", "data2": "2019-04-25 00:00:00", "data3": "2019-05-25 00:00:00","data4": "2019-06-25 00:00:00"}}],"table": [{"vdb": 1, "db": "employees", "table": "dept_emp", "pkey": "emp_no"},{"vdb": 2, "db": "employees", "table": "employees", "pkey": "emp_no"},{"vdb": 3, "db": "employees", "table": "purchase", "pkey": "t_time"}],"single_tables": [{"table": "regioncode", "db": "employees", "group": "data1"}]
}
EOFcat >> /usr/local/cetus/conf/shard.conf << EOF
[cetus]
# For mode
daemon=true
# Loaded Plugins
plugins=shard,admin
# Defines the number of worker processes. 
worker-processes=1
# Proxy Configuration, For eaxmlpe: MySQL master host ip is 192.0.0.1 and salve host ip is 192.0.0.2
proxy-address=0.0.0.0:6001
proxy-backend-addresses=192.168.10.250:3306@data1,192.168.10.251:3306@data2,192.168.10.252:3306@data3,192.168.10.253:3306@data4
proxy-read-only-backend-addresses=192.168.10.250:3306@data1,192.168.10.251:3306@data2,192.168.10.252:3306@data3,192.168.10.253:3306@data4
# Admin Configuration
admin-address=0.0.0.0:7001
admin-username=admin
admin-password=admin
# Backend Configuration, use test db and username created
default-db=testdb
default-username=cetus_app
default-pool-size=100
max-pool-size=400
max-resp-=10485760
long-query-time=100
# Log Configuration, put log in /data and marked by proxy port , /data/cetus needs to be created manually and has rw authority for cetus os user
plugin-dir=lib/cetus/plugins
max-open-files=65536
pid-file=cetus.pid
log-xa-file = /usr/local/cetus/logs/xa.log
log-file= /usr/local/cetus/logs/cetus_6001.log
log-level=debug
# Check salve delay
disable-threads=false
check-slave-delay=true
slave-delay-down=5
slave-delay-recover=1
# For trouble
keepalive=true
verbose-shutdown=true
log-backtrace-on-crash=true
# For performance
enable-tcp-stream=false
enable-fast-stream=false
#For MGR
group-replication-mode=0
EOF

 

  • 启动

 

chmod 660 /usr/local/cetus/conf/shard.conf
/etc/init.d/cetus start
#添加开机自启
chmod +x /etc/rc.d/init.d/cetus
chkconfig --add cetus
​chkconfig --level 2345 cetus on
chkconfig
#业务
mysql --prompt="admin> " --comments -h192.168.10.243  -P7001 -uadmin -padmin
#管理
mysql --prompt="proxy> " --comments -h192.168.10.243  -P6001 -ucetus_app  -pcetus_app

 

 

  • 测试

 

#测试
use employees;
# "partitions": {"data1": [0,1], "data2": [2,3], "data3": [4,5], "data4": [6,7]}
insert into dept_emp(emp_no,datetime) values(0,now()),(1,now()),(2,now()),(3,now()),(4,now()),(5,now()),(6,now()),(7,now());
#没有分配8的hash添加会被分配到第一个节点
insert into dept_emp(emp_no,datetime) values(8,now());#测试range
#"partitions": {"data1": 100000, "data2": 200000, "data3": 300000,"data4": 400000}
insert into employees(emp_no,datetime) values(1,now()),(100000,now()),(100001,now()),(200000,now()),(200001,now()),(300000,now()),(300001,now()),(400000,now());
#添加越过边界的数据会提示ERROR 1046 (3D000): no group yet
insert into employees(emp_no,datetime) values(400001,now());#datetime range
#"partitions": {"data1": "2019-03-25 00:00:00", "data2": "2019-04-25 00:00:00", "data3": "2019-05-25 00:00:00","data4": "2019-06-25 00:00:00"}
insert into purchase(t_time) values("2019-03-21"),("2019-03-26"),("2019-04-26"),("2019-05-26"),("2019-06-26");
#超过边界ERROR 1046 (3D000): no group yet
insert into purchase(t_time) values("2019-06-26")#单点全局表 读写都在250一台数据库上
insert into regioncode(emp_no) values(1),(2),(3),(4);
select * from regioncode;

 


http://chatgpt.dhexx.cn/article/NviSABPe.shtml

相关文章

【Cetus 介绍】

Cetus是由C语言开发的关系型数据库MySQL的中间件&#xff0c;主要提供了一个全面的数据库访问代理功能。Cetus连接方式与MySQL基本兼容&#xff0c;应用程序几乎不用修改即可通过Cetus访问数据库&#xff0c;实现了数据库层的水平扩展和高可用。 主要功能特性 Cetus分为读写分离…

基于 .Net Core、WPF 的多语言实现(一)

基于 .Net Core、WPF 的多语言实现&#xff08;一&#xff09; 学习 CultureInfo基于WPF 的CultureInfo 信息大全Startup.csMainWindow.XamlMainWindow.Xaml.cs 学习 CultureInfo 官方文档: CultureInfo . 提供有关特定区域性&#xff08;对于非托管代码开发&#xff0c;则称…

使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)

概述 最近&#xff0c;有客户向我们请求开发一个前端下拉控件&#xff0c;需求是显示了一个列表&#xff0c;其中包含可由用户单独选择的项目控件&#xff0c;该控件将在下拉列表中显示多选TreeView&#xff08;树形图&#xff09;。 如今WijmoJS已经实现了该控件——DropDownT…

nodejs+express搭建javascript在线IDE及CodeMirror代码提示问题

title: js在线学习平台的介绍及安装 nodejsexpress搭建javascript在线IDE 项目地址 github:https://github.com/sixtrees/js-online-running 背景 这两天在看阮一峰的《ES6标准入门》&#xff0c;对其中涉及到的代码示例部分&#xff0c;感觉到很不方便&#xff0c;不知道阮老师…

Winform中实现向窗体中拖放照片并显示以及拖放文件夹显示树形结构(附代码下载)

场景 向窗体中拖拽照片并显示效果 向窗体中拖拽文件夹并显示树形结构效果 注&#xff1a; 博客主页&#xff1a; https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。 实现 新建一个窗体&#xff0c;在窗体中拖…

Day 21-30 :Web前端概述

Web前端概述 说明&#xff1a;本文使用的部分插图来自Jon Duckett先生的*HTML and CSS: Design and Build Websites*一书&#xff0c;这是一本非常棒的前端入门书&#xff0c;有兴趣的读者可以在亚马逊或者其他网站上找到该书的购买链接。 HTML 是用来描述网页的一种语言&#…

托管 AJAX 能否让 Web 应用程序提速?

有关本主题的多项研究表明&#xff0c;创建 AJAX Web 应用程序时遇到的两个最重要问题是&#xff0c;运行速度和响应速度。这可能是一些开发者选择创建原生应用程序&#xff08;而不是 Web 应用程序&#xff09;的部分原因所在。 但如果我说有一种方法可以创建运行速度和响应速…

数据库实验代码展示(图书管理系统)

数据库实验视频演示及讲解地址 namespace BookManageSystem {partial class Add_BookInfo{/// <summary>/// Required designer variable./// </summary>private System.ComponentModel.IContainer components = null;/// <summary>/// Clean up any resou…

【C#】利用C#窗体与SQL Server的连接、Treeview制作SQL Server数据库查看器

实质上&#xff0c;本文的中心还是在讨论C#对SQL Server的增删改查&#xff0c;只是这次创新一点&#xff0c;配合Treeview制作SQL Server数据库查看器。 具体如下图&#xff1a; 根据SQL Server&#xff0c;Test数据库中的表的结构与内容&#xff1a; 编写一个对Test数据库的…

获取文件夹内文件名字及源代码C#

获取文件夹内文件名字及源代码C# using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks…

TreeView控件与SQL数据库的应用(遍历算法)

开发环境&#xff1a;WinXP SP3&#xff0c;VS2008&#xff0c;SQL2000 TreeView控件与SQL数据库的应用(遍历算法) (数据与TreeView的绑定及Treeview的增加、删除、修改、遍历等数据库的操作) 这个是数据库连接及一些操作数据库的方法&#xff0c;文件&#xff1a;SqlManager.c…

TreeView数据绑定

http://www.cnblogs.com/mgen/archive/2011/07/21/2113152.html [更新至V2]WPF&#xff1a;MVVM简单文件浏览器 源代码下载 2.0 下载页面 1.0 下载页面 注意&#xff1a;链接是微软SkyDrive页面&#xff0c;下载时请用浏览器直接下载&#xff0c;用某些下载工具可能无法下载 源…

C#界面设计之树目录TreeView的使用

还是先上效果图&#xff1a; 主要代码如下&#xff1a; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms;namespace TreeDemo {public partial c…

treeview 跨窗体拖拽功能的实现(一)

功能实现&#xff1a; 1.从工具窗体往任务窗体拖拽&#xff1b; 2.在任务窗体中改变节点的顺序&#xff1b; 3.右键复制节点&#xff0c;删除节点 工具窗体treeview1,&#xff1a; 涉及使用的事件&#xff1a;DragEnter&#xff0c; DragOver ,ItemDrag, NodeMouseDouble…

Virtual Treeview 安装以及入门

Virtual Treeview是一套Delphi下优秀的VCL控件&#xff0c;代码质量高&#xff0c;使用灵活、功能强大、性能非常好&#xff0c;可以用于表达Treeview和表格类数据。它的代码现在托管在google code上。 Virtual Treeview是一个“纯VCL”控件&#xff0c;这意味着它不是基于任何…

android treeview 树形结构,前端开发中,使用TreeView控件创建树形结构

原标题&#xff1a;前端开发中&#xff0c;使用TreeView控件创建树形结构 Wijmo是一款使用Type编写的新一代Java/HTML5控件集。它秉承触控优先的设计理念&#xff0c;在全球率先支持AngularJS&#xff0c;并提供性能卓越、零依赖的FlexGrid和图表等多个控件。 我们已经知道在Wi…

透透彻彻了解服务器技术

什么是服务器   服务器是一种高性能计算机&#xff0c;作为网络的节点&#xff0c;存储、处理网络上80&#xff05;的数据、信息&#xff0c;因此也被称为网络的灵魂。做一个形象的比喻&#xff1a;服务器就像是邮局的交换机&#xff0c;而微机、笔记本、PDA、手机等固定或移…

服务器的介绍

一 、IDC/机柜/物理server/云主机介绍 1.互联网数据中心 &#xff08;Internet Data Center&#xff09; 互联网数据中心图片 &#xff08;1&#xff09;IDC的简介 简称IDC&#xff0c;是电信部门利用已有的互联网通信线路、带宽资源&#xff0c;建立的标准化电信专业级机房环…

web服务器(技术讲解)

2.Web服务器&#xff08;技术讲解&#xff09; 1.ASP 微软&#xff1a;国内最早流行在HTML中嵌入了VB脚本&#xff0c;ASPCOM在ASP开发中&#xff0c;基本一个页面有几千行的业务代码&#xff0c;页面杂乱&#xff0c;维护成本非常高 2.PHP 开发速度很快&#xff0c;功能强…

关于服务器

初始服务器 云操作 以下是重装系统操作 出现黑窗口后&#xff1a; 输入—>sudo passwd命令–>输入密码&#xff08;密码不可见&#xff09;–>再次输入密码&#xff08;密码不可见&#xff09;–>su命令&#xff08;可使用root用户&#xff09;–>输入密码&…