数据库中间件 Cetus 2.3.6 读写分离版

article/2025/9/23 19:21:34

 

  • 搭建数据库主从集群并且初始化数据库

 

192.168.10.243 #cetus
192.168.10.250 #M
192.168.10.251 #S
#开启延迟检测需要创建心跳表
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;#注意授权情况  针对db 和具体授权 此处是事例
#grant all on *.* to 'cetus_app'@'%' identified by 'cetus_app';
#grant all on *.* to 'cetus_app1'@'%' identified by 'cetus_app1';

 

  • 安装cetus

 

#MySQL建议使用5.7.16以上版本,若使用读写分离功能则需要搭建MySQL主从关系,若使用sharding功能则需要根据业务进行分库设计.yum install cmake gcc glib2-devel flex mysql-devel gperftools-libs zlib-devel -y
#下载最新版
#https://github.com/cetus-tools/cetus/releases
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/
#安装目录
mkdir /usr/local/cetus -p
#读写分离版本:
CFLAGS='-g -Wpointer-to-int-cast' cmake ../ -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr/local/cetus  -DSIMPLE_PARSER=ON#配置 
#https://github.com/cetus-tools/cetus/blob/master/doc/cetus-rw-profile.md
cat >> /usr/local/cetus/conf/proxy.conf << EOF
[cetus]
verbose-shutdown=true
daemon=true
basedir=/usr/local/cetus
conf-dir=/usr/local/cetus/conf
pid-file=/usr/local/cetus/cetus6001.pid
plugin-dir=lib/cetus/plugins
plugins=proxy,admin
log-level=debug
log-file=/tmp/cetus_6001.log
max-open-files=65536
default-charset=utf8
default-username=cetus_app
default-db=testdb
ifname=eth0
#刚启动连接数量
default-pool-size=100worker-processes=1
ssl=false
slave-delay-down=4.000000
slave-delay-recover=1.000000
long-query-time=100
enable-tcp-stream=true
enable-fast-stream=false
sql-log-bufsize=10485760
sql-log-switch=OFF
sql-log-prefix=cetus
sql-log-path=/usr/local/cetus/logs
sql-log-maxsize=1024
sql-log-mode=BACKEND
#
proxy-address=0.0.0.0:6001
#主库
proxy-backend-addresses=192.168.10.250:3306
#slave
proxy-read-only-backend-addresses=192.168.10.251:3306
#管理端
admin-address=0.0.0.0:7001
admin-username=admin
admin-password=admin
EOFcat >> /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

 

  • 启动

 

chmod 660 /usr/local/cetus/conf/proxy.conf
#读写分离版本启动
/usr/local/cetus/bin/cetus --defaults-file=/usr/local/cetus/conf/proxy.conf
#服务连接
#https://github.com/cetus-tools/cetus/blob/master/doc/cetus-rw.md
mysql --prompt="proxy> " --comments -h192.168.10.243  -P6001 -ucetus_app  -pcetus_app#管理连接
#https://github.com/cetus-tools/cetus/blob/master/doc/cetus-rw-admin.md
mysql --prompt="admin> " --comments -h192.168.10.243  -P7001 -uadmin -padmin
#查看后端
select * from backends;
#查看后端连接状态
select conn_details from backends;
#添加后端
add master '127.0.0.1:3307'
add slave '127.0.0.1:3360'
#删除后端
delete from backends where address = '127.0.0.1:3306'
#修改后端
update backends set type='rw' where address='127.0.0.1:3306'
update backends set state='up' where backend_ndx=1
#查看链接
show connectionlist;
#开启全量日志后可以看到请求具体被分发的节点
config set sql-log-switch = 'on';
sql log start;

 

 


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

相关文章

cetus权限连接主从mysql_cetus/cetus-rw.md at master · smudkey/cetus · GitHub

Cetus 读写分离版使用指南 简介 Cetus 读写分离版将前端发来的读请求和写请求分别发送到不同的服务器后端&#xff0c;由于底层的数据库都是Master/Slave架构&#xff0c;做到读写分离能大大提高数据库的处理能力。 安装部署 准备 1. MySQL 搭建MySQL主从关系 若开启主从延迟检…

数据库中间件 Cetus 2.3.6 分库版

数据库初始化 #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 varcha…

【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;建立的标准化电信专业级机房环…