做外汇看什么网站/sem竞价托管价格
读写分离
- 互相主从
- 架构
- 注意点
- 双主双从
- 架构
- 注意点
- 一主多从
- 架构
- 注意点
- 读写分离
- 概念
- 部署jdk环境
- 上传文件,解压文件
- 配置环境变量
- 部署mycat环境
- mycat配置文件
- 给所有数据库创建访问用户
- 配置 server.xml
- 配置 schema.xml
- 启动mycat
- 查看启动端口
- 日志
- 负载均衡
- 测试
- 遇到的问题
- 能进mycat但是进不去TESTDB
- 调整mysql最大连接数
- 在mycat中use TESTDB特别卡
- 测试负载均衡时候,0查看到的是主2,1查看到的是主1,从1从2(基于双主双从做的读写分离)
- 更改假用户登录mycat后查看的数据库名
互相主从
架构
ip | role |
---|---|
ip1 | ip2的主库、ip2的从库 |
ip2 | ip1的主库、ip2的从库 |
注意点
两个服务器上都要创建远程登录拷贝用户
两个数据库都在写入数据,可能会造成主键冲突,可以在my.cnf配置文件中写入
auto_increment_increment=2 //设置初始步长值 auto_increment_offset=1 //设置偏移量
这样就可以避免主键冲突
双主双从
架构
ip | role |
---|---|
ip1 | ip3和ip2的主库,ip2的从库 |
ip2 | ip4和ip1的主库,ip1的从库 |
ip3 | ip1的从库 |
ip4 | ip2的从库 |
注意点
因为ip1和ip2的主库要拷贝多份二进制binlog日志,在my.cnf里添加参数
log-slave-updates //binlog可以多次拷贝,主库复制的内容也会写入从库binlog
一主多从
架构
ip | role |
---|---|
ip1 | ip2和ip3的主库 |
ip2 | ip1的从库 |
ip3 | ip1的从库 |
注意点
因为ip1的主库要拷贝多份二进制binlog日志,在my.cnf里添加参数
log-slave-updates //binlog可以多次拷贝,主库复制的内容也会写入从库binlog
读写分离
概念
一主一从的基础上实现读数据和写数据访问不同的服务器
Mycat 是一个开源的数据库系统,但是由于真正的数据库需要存储引擎,而Mycat并没有存储引擎,所以并不是完全意义的数据库系统,Mycat 是数据库中间件,就是介于数据库与应用之间,进行数据处理与交互的中间服务。MyCAT是使用JAVA语言进行编写开发,使用前需要先安装JAVA运行环境(JRE),由于MyCAT中使用了JDK7中的一些特性,所以要求必须在JDK7以上的版本上运行。
部署jdk环境
上传文件,解压文件
tar -xf jdk-8u181-linux-x64.tar.gz
配置环境变量
vim /etc/profile.d/java.sh //java环境配置export JAVA_HOME=/opt/jdk1.8.0_211
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarsource /etc/profile.d/java.sh //使环境变量生效
部署mycat环境
tar xf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz
vim /etc/profile //环境配置export JAVA_HOME=/opt/mycat
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarsource /etc/profile //重启环境变量
mycat配置文件
mycat/conf/server.xml //定义用户以及系统相关变量,如端口等。其中用户信息是前端应用程序连接mycat的用户信息,简单来说,就是假的信息mycat/conf/schema.xml //定义逻辑库,表、分片节点等内容。
给所有数据库创建访问用户
grant all on *.* to '用户名'@'%' identified by "密码";
配置 server.xml
修改配置文件前备份一份
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://io.mycat/">
<!-- 登录mycat的用户和密码--><user name="root" defaultAccount="true"><property name="password">0</property>
<!-- 登录mycat的用户看到的数据库名--><property name="schemas">TESTDB</property></user><user name="user"><property name="password">user</property><property name="schemas">TESTDB</property><property name="readOnly">true</property></user>
</mycat:server>
配置 schema.xml
修改配置文件前备份一份
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<!--逻辑库和分表设置,与server.xml一致--><schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema>
<!--数据节点,database是真实存在的组,真组和假组在这里建立连接--><dataNode name="dn1" dataHost="localhost1" database="stu" /><!--主机组,注意name和数据节点的dataHost相同即可,balance负载均衡--><dataHost name="localhost1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"><!--健康检查--><heartbeat>select user()</heartbeat><!--读写配置,此处以双主双从举例,此处的用户数据库必须存在--> <writeHost host="hostM1" url="主1ip:端口" user="用户" password="密码"><readHost host="hostS1" url="从1ip:端口" user="用户" password="密码"/></writeHost><writeHost host="hostM2" url="主2ip:端口" user="用户" password="密码"><readHost host="hostS2" url="从2ip:端口" user="用户" password="密码"/></writeHost></dataHost>
</mycat:schema>
启动mycat
mycat start
查看启动端口
ss -nplt
端口关注8066
日志
mycat/logs //日志目录drwxr-xr-x 2 root root 4096 12月 26 10:24 2023-12 //打包的日志文件
-rw-r--r-- 1 root root 23800 12月 26 11:19 mycat.log //mycat的启动日志文件
-rw-r--r-- 1 root root 5 12月 26 10:24 mycat.pid //启动程序的pid
-rw-r--r-- 1 root root 72956 12月 26 10:24 wrapper.log //错误日志
负载均衡
balance 属性
负载均衡类型,目前的取值有 3 种:
1. balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的 writeHost 上。
2. balance="1", 全部的 readHost 与 stand by writeHost 参与 select 语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且M1与M2互为主备),正常情况下,M2,S1,S2 都参与 select 语句的负载均衡。
4. balance="2", 所有读操作都随机的在 writeHost、readhost 上分发。
5. balance="3", 所有读请求随机的分发到 writerHost 对应的 readhost 执行,writerHost 不负担读压力,注意 balance=3 只在 1.4 及其以后版本有,1.3 没有。writeType 属性
负载均衡类型
1. writeType="0", 所有写操作发送到配置的第一个 writeHost,第一个挂了切到还生存的第二个writeHost,重新启动后已切换后的为准.
2. writeType="1",所有写操作都随机的发送到配置的 writeHost,1.5 以后废弃不推荐。
测试
mysql -uroot -p0 -hmycat -P8066 TESTDB //此处登录的ip地址是mycat存在的主机,登录的用户是在mycat/conf/server.xml中写的假的数据库登录信息关闭双主双从的主从复制,服务器分别创建数据库,用负载均衡,进行检查
0:只能查看正在写的数据库
1:除了正在写的数据库都有
2:所有数据库
3:所有读的数据库
遇到的问题
能进mycat但是进不去TESTDB
问题一
一般情况是数据库的用户授权或者创建有问题若是多主数据库的情况,进不去数据库时候,会一直建立连接,用户问题解决后
调整mysql最大连接数
max-connections=2000 //增加mysql最大连接数的配置,在my.cnf更改
在mycat中use TESTDB特别卡
问题一
schema.xml配置文件中
<!--数据节点,database是真实存在的组,真组和假组在这里建立连接-->
<dataNode name="dn1" dataHost="localhost1" database="stu" />
数据节点database的数据库可能在主从架构中不存在问题二
创建用户和库的时候,先创的用户,后创建的库,用户没有授权这个库,重新对用户进行授权即可
测试负载均衡时候,0查看到的是主2,1查看到的是主1,从1从2(基于双主双从做的读写分离)
主1数据库的最大连接数连满了,写的目标数据库变成主2的数据库
重启数据库即可解决或者设置数据库的最大连接数
更改假用户登录mycat后查看的数据库名
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://io.mycat/">
<!-- 登录mycat的用户和密码--><user name="root" defaultAccount="true"><property name="password">0</property>
<!-- 登录mycat的用户看到的数据库名--><property name="schemas">nan</property></user><user name="user"><property name="password">user</property><property name="schemas">TESTDB</property><property name="readOnly">true</property></user>
</mycat:server>schema.xml
<schema name="nan" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">然后就起不来了,问题在假库的配置文件,user的标签内识别不到,不用user标签,将标签删除,如:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://io.mycat/">
<!-- 登录mycat的用户和密码--><user name="root" defaultAccount="true"><property name="password">0</property>
<!-- 登录mycat的用户看到的数据库名--><property name="schemas">nan</property></user>
</mycat:server>
重启,一般情况就起来了
相关文章:

linux中主从复制的架构和读写分离的方式
读写分离 互相主从架构注意点 双主双从架构注意点 一主多从架构注意点 读写分离概念部署jdk环境上传文件,解压文件配置环境变量 部署mycat环境mycat配置文件给所有数据库创建访问用户配置 server.xml配置 schema.xml启动mycat查看启动端口日志负载均衡测试 遇到的问…...

Ubuntu 22.04.3 Server 设置静态IP 通过修改yaml配置文件方法
目录 1.查看网卡信息 2.修改yaml配置文件 3.应用新的网络配置 4.重新启动网络服务 文章内容 本文介绍Ubuntu 22.04.3 Server系统通过修改yaml配置文件配置静态 ip 的方法。 1.查看网卡信息 使用ifconfig命令查看网卡信息获取网卡名称 如果出现Command ifconfig not fo…...

EasyCVR无人机推流+人数统计AI算法,助力公共场所人群密度管控
一、背景与需求 在公共场所和大型活动的管理中,人数统计和人群密度控制是非常重要的安全问题。传统的方法可能存在效率低下或准确度不足的情况,无法满足现代社会的需求。TSINGSEE青犀可以利用无人机推流AI人流量统计算法,基于计算机视觉技术…...

Kotlin 接口
Kotlin 的接口可以既包含抽象方法的声明也包含实现;接口无法保存状态;可以有属性但必须声明为抽象或提供访问器实现 1、定义 使用关键字 interface 来定义接口 interface MyInterface {fun bar()fun foo() {// 可选的方法体} } 2、 实现接口 一个类…...

Qt前端技术:5.QSS
这个是表示QFrame中的pushButton中的子类和它子类的子类都将背景变为red 写成大于的时候表示只有直接的子类对象才会变 这个图中的QGroupBox和QPushButton都是QFrame的直接的子类 这个中的QGroupBox是QFrame的直接的子类但是QPushButton 是QGroupBox的子类,QPushB…...

在Centos7中利用Shell脚本:实现MySQL的数据备份
目录 自动化备份MySQL 一.备份数据库脚本 1.创建备份目录 2.创建脚本文件 3.新建配置文件(连接数据库的配置文件) 4.给文件权限(mysql_backup.sh) 编辑 5.执行命令 (mysql_backup.sh) 编辑 二.数据库通过备份恢复 1.创建脚…...

大一C语言查缺补漏 12.24
遗留问题: 6-1 1 在C语言中,如果要保留小数的话,一定要除以2.0,而不是2。 设整型变量m,n,a,b的值均为1,执行表达式(m a>b)||(n a<b)后,表达式的值以及变量m和n的值是&#…...

程序员宝典:常用的免费好物API
六位图片验证码生成:包括纯数字、小写字母、大写字母、大小写混合、数字小写、数字大写、数字大小写等情况。 四位图片验证码生成:四位图片验证码生成,包括纯数字、小写字母、大写字母、大小写混合、数字小写、数字大写、数字大小写等情况。…...

关于“Python”的核心知识点整理大全41
目录 scoreboard.py game_functions.py game_functions.py 14.3.8 显示等级 game_stats.py scoreboard.py scoreboard.py scoreboard.py game_functions.py game_functions.py alien_invasion.py 14.3.9 显示余下的飞船数 ship.py scoreboard.py 我们将最高得分圆整…...

java进阶(二)-java小干货
java一些精干知识点分享 2. java小干货2.1循环遍历2.2可变参数2.3 list和数组转化2.3.1 数组转list2.3.2 list转数组 2.4 值传递和地址传递2.4.1值传递2.4.2 地址传递2.4.3易错点总结 2.5 数据类型2.5.1基础知识2.5.2 基础数据和包装类 2.6 字符串2.6.1 char/String区别2.6.2 .…...

layui(iconPickerFa)图标选择器插件,主要用于后台菜单图标管理
话不多说直接上代码 在页面中引入如下代码 <link rel"stylesheet" href"/template/admin/layui-v2.5.6/css/layui.css"> <script type"text/javascript" src"/template/admin/layui-v2.5.6/layui.js"></script> &…...

RabbitMQ入门指南(九):消费者可靠性
专栏导航 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、消费者确认机制 二、失败重试机制 三、失败处理策略 四、业务幂等性 1.通过唯一标识符保证操作的幂等性 2.通过业务判断保证操作的幂等性 总结 前言 RabbitMQ是一个高效、可靠的开源消息队列系…...

MySQL的聚合函数、MySQL的联合查询、MySQL的左连接右连接内连接
MySQL的聚合函数 MySQL聚合函数是在数据库中对数据进行聚合操作的函数。它们将多行数据作为输入,并返回单个值作为结果。 常用的MySQL聚合函数包括: COUNT:计算符合条件的行数。SUM:对指定列的数值进行求和操作。AVG࿱…...

RKNN Toolkit Lite2 一键安装和测试,sh脚本
RKNN Toolkit Lite2 安装和测试教程 本教程旨在指导用户如何使用提供的shell脚本来安装和测试RKNN Toolkit Lite2,适用于需要在Linux系统上部署和测试AI模型的开发者。 简介 RKNN Toolkit Lite2是一个高效的AI模型转换和推理工具包,专为Rockchip NPU设…...

探索中国制造API接口:解锁无限商机,引领制造业数字化转型
一、概述 中国制造API接口是一种应用程序接口,专门为中国制造行业提供数据和服务。通过使用API接口,开发者可以轻松地获取中国制造的商品信息、供应商数据、生产能力等,从而为他们的应用程序或网站提供更加丰富的内容和功能。 二、API接口的…...

CentOS上安装MySQL 8.0的详细教程
CentOS上安装MySQL 8.0的详细教程 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我将为大家分享一篇关于在CentOS上安装MySQL 8.0的详细教程。MySQL是一个强大…...

[RISCV] 为android14添加一个新的riscv device
本篇博客将基于android-14-r18添加Sifive unmatched板子的支持。 Setup build envoronment Establishing a build environment $ sudo apt install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 libncurses5 x11proto-core-dev libx11-de…...

【Fastadmin】通用排序weigh不执行model模型的事件
在model模型类支持的before_delete、after_delete、before_write、after_write、before_update、after_update、before_insert、after_insert事件行为中,我们可以快捷的做很多操作,如删除缓存、逻辑判断等 但是在fastadmin的通用排序weigh拖动中无法触发…...

logstash收集华为、H3C、Cisco交换机日志
网络设备配置 将 syslog-ip 替换成服务器的IP地址。 Huawei info-center loghost source interface info-center loghost syslog-ip local-time facility local6 H3C info-center loghost source interface info-center loghost syslog-ip facility local5 Aruba logging arm …...

云上荆楚丨云轴科技ZStack成功实践精选(湖北)
湖北自古以来有九省通衢的美称,地处长江中游,富有荆楚之美誉,灵秀之蕴意。2022年湖北数字经济强省三年行动计划正式印发,计划到“十四五”末,数字经济核心产业增加值力争达到7000亿元,占GDP的比重超过12%。…...

C语言字符串处理提取时间(ffmpeg返回的时间字符串)
【1】需求 需求:有一个 “00:01:33.90” 这样格式的时间字符串,需要将这个字符串的时间值提取打印出来(提取时、分、秒、毫秒)。 这个时间字符串从哪里来的? 是ffmpeg返回的时间,也就是视频的总时间。 下…...

NC(65)元数据增加字段
以报销单主表er_bxzb表为例,增加15个字段字段以及两个其他业务所需字段 1、先在er_bxzb增加字段 增加字段 alter table er_bxzb add no_invoice char(1) default(N);alter table er_bxzb add is_enabled_taxation_cloud char(1) default(N);alter table er_bxzb a…...

SParC数据集介绍
导语 SParC是Text-to-SQL领域的一个多轮查询数据集。本篇博客将对该数据集论文和数据格式进行简要介绍。 SParC数据集概述 SParC是一个跨领域的多轮Text-to-SQL数据集。它包含有4298个问题轮次,大约有12k的自然语言问句到SQL标注的Question-SQL对。这些问题来自于…...

OpenGL 绘制Mesh数据(Qt)
文章目录 一、简介二、实现代码三、实现效果一、简介 Mesh数据的结构主要就是点与三角面片,因此本质上仍然是对三角面片进行绘制。这里我们借助VCG这个库实现对Mesh数据的读取,这个库相对简单轻巧,很方便使用。 二、实现代码 由于修改的部分很多,我们逐一进行解释一下: --…...

9.传统的轨道画线算法()
轨道画线分为以下步骤: 1.读取摄像头图片 2.图片灰度处理,截取轨道区域的图片 3.中值滤波处理,并区域取均值后做期望差的绝对值。本人通过一些轨道图片实验,用这种方法二值化得到的效果比caany算子等方法的效果好 4.二值化后再…...

F (1164) : B DS二叉排序树_有效的二叉排序树
Description 给你一个二叉树,判断其是否是一个有效的二叉排序树。 有效的二叉排序树定义如下: 1. 结点的左子树只包含小于当前结点的数。 2. 结点的右子树只包含大于当前结点的数。 3. 所有左子树和右子树自身必须也是二叉排序树。 Input 第一行输…...

结合el-upload修改支持上传图片、视频并预览
结合element plus的el-upload标签,实现上传图片和视频,并支持在线预览和放大 1、html部分 <el-form-item label"活动照片、视频"><el-uploadv-model:file-list"state.photoList":action"state.uploadUrl"accept…...

1.SQL - 概述
1. SQL语句分类 • 数据定义语言:简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等 • 数据操作语言:简称DML(Data …...

GaussDB数据库表创建行访问控制策略
目录 一、前言 二、GaussDB中的行访问控制 1、CREATE ROW LEVEL SECURITY POLICY语法 2、ALTER ROW LEVEL SECURITY POLICY语法 3、ROW LEVEL SECURITY策略与适配SQL语法关系 三、GaussDB中的行访问控制策略示例 1、实现GaussDB行访问控制的一般步骤 2、行访问控制策略…...

提升设备巡检效率的关键:易点易动设备管理系统的应用
随着互联网技术的发展,智慧设备管理已成为各行各业提升运营效率的重要选择。相比传统的手动巡检方式,采用设备管理系统可以实现物联网技术给企业带来更高效的运营方式。其中,易点易动作为一款成熟的设备管理系统,其广泛应用于提升设备巡检效率这一领域发挥了很好的作用。 采用易…...