什么是 MyCat
MyCat 是目前最流行的基于 java 语言编写的数据库中间件,是一个实现了 MySQL 协议的服务器,前端用户可以把它看作是一个数据库代理,用 MySQL 客户端工具和命令行访问,而其后端可以用 MySQL 原生协议与多个 MySQL 服务器通信,也可以用 JDBC 协议与大多数主流数据库服务器通信,其核心功能是分库分表。配合数据库的主从模式还可实现读写分离。
MyCat 是基于阿里开源的 Cobar 产品而研发,Cobar 的稳定性、可靠性、优秀的架构和性能以及众多成熟的使用案例使得 MyCat 变得非常的强大。
MyCat 发展到目前的版本,已经不是一个单纯的 MySQL 代理了,它的后端可以支持MySQL、SQL Server、Oracle、DB2、PostgreSQL 等主流数据库,也支持 MongoDB 这种新型NoSQL 方式的存储,未来还会支持更多类型的存储。而在最终用户看来,无论是那种存储方式,在 MyCat 里,都是一个传统的数据库表,支持标准的 SQL 语句进行数据的操作,这样一来,对前端业务系统来说,可以大幅降低开发难度,提升开发速度。
MyCat 官网:http://www.mycat.io/
使用 Mycat 的优势
数据量级
单一的 MySQL 其数据存储量级和操作量级有限.
Mycat 可以管理若干 MySQL 数据库,同时实现数据的存储和操作
开源性质
Mycat 是 java 编写的中间件. 开源,免费.有非常多的人和组织对 Mycat 实行开发,维护,管理,更新. Mycat 版本提升较快,可以跟随环境发展.如果有问题,可以快速解决. Mycat 有开源网站和开源社区.且有官方发布的电子书籍. Mycat 是阿里原应用 corba 转型而来
市场应用
2015 年左右,Mycat 在互联网应用中占比非常高
MyCat 中的概念
切分
逻辑上的切分. 在物理层面,是使用多库[database],多表[table]实现的切分.
纵向切分/垂直切分
就是把原本存储于一个库的数据存储到多个库上。 由于对数据库的读写都是对同一个库进行操作,所以单库并不能解决大规模并发写入的问题。
例如:我们会建立定义数据库 workDB、商品数据库 payDB、用户数据库 userDB、日志数据库 logDB 等,分别用于存储项目数据定义表、商品定义表、用户数据表、日志数据表等。
优点: 1)减少增量数据写入时的锁对查询的影响。 2)由于单表数量下降,常见的查询操作由于减少了需要扫描的记录,使得单表单次查询所需的检索行数变少,减少了磁盘 IO,时延变短。 缺点:无法解决单表数据量太大的问题。
横向切分/水平切分
把原本存储于一个表的数据分块存储到多个表上。当一个表中的数据量过大时,我们可以把该表的数据按照某种规则,进行划分,然后存储到多个结构相同的表,和不同的库上。 例如,我们 userDB 中的 userTable 中数据量很大,那么可以把 userDB 切分为结构相同的多个 userDB:part0DB、part1DB 等,再将 userDB 上的 userTable,切分为很多 userTable:userTable0、userTable1 等,然后将这些表按照一定的规则存储到多个 userDB 上。
优点: 1)单表的并发能力提高了,磁盘 I/O 性能也提高了。 2)如果出现高并发的话,总表可以根据不同的查询,将并发压力分到不同的小表里面。 缺点:无法实现表连接查询
逻辑库-Schema
Mycat 中定义的 database.是逻辑上存在的.但是物理上是不存在的.主要是针对纵向切分提供的概念.
逻辑表-table
Mycat 中定义的 table.是逻辑上存在,物理上是不存在的.主要是针对横向切分提供的概念
默认端口
Mycat 默认端口是 8066
数据主机 - dataHost
物理 MySQL 存放的主机地址.可以使用主机名,IP,域名定义
数据节点 - dataNode
配置物理的 database. 数据保存的物理节点.就是 database
分片规则
当控制数据的时候,如何访问物理 database 和 table.就是访问 dataHost 和 dataNode 的算法. 在 Mycat 处理具体的数据 CRUD 的时候,如何访问 dataHost 和 dataNode 的算法.如:哈希算法,crc32 算法等
MyCat 的使用
读写分离
原理:需要搭建主从模式,让主数据库(master)处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库(slave)处理 SELECT 查询操作。 Mycat 配合数据库本身的复制功能,可以解决读写分离的问题
主从备份概念
什么是主从备份: 就是一种主备模式的数据库应用. 主库(Master)数据与备库(Slave)数据完全一致. 实现数据的多重备份, 保证数据的安全. 可以在 Master[InnoDB]和 Slave[MyISAM]中使用不同的数据库引擎,实现读写的分离
MySQL5.5, 5.6 版本后本身支持主从备份
在老旧版本的 MySQL 数据库系统中,不支持主从备份,需要安装额外的 RPM 包.如果需要安装 RPM,只能在一个位置节点安装
主从备份目的:
实现主备模式 保证数据的安全. 尽量避免数据丢失的可能
实现读写分离 使用不同的数据库引擎,实现读写分离.提高所有的操作效率.InnoDB 使用 DML 语法操作. MyISAM 使用 DQL 语法操作.
主从备份效果
主库操作同步到备库
所有对 Master 的操作,都会同步到 Slave 中.如果 Master 和 Salve 天生上环境不同,那么对 Master 的操作,可能会在 Slave 中出现错误如: 在创建主从模式之前,Master 有 database : db1, db2, db3. Slave 有 database: db1,db2.
创建主从模式.现在的情况 Master 和 Slave 天生不同. 主从模式创建成功后,在 Master 中 drop database db3. Slave 中抛出数据库 SQL 异常.后续所有的命令不能同步.一旦出现错误. 只能重新实现主从模式
MySql 的主从模式搭建
使用两个虚拟机模拟搭建两个虚拟机都进行安装 MySQL
主库:192.168.1.19
编辑/etc/my.cnf文件,
配置server_id,主库的server_id任意配置,只要是数字即可serverid Master 唯一标识数字必须小于 Slave 唯一标识;
配置log_bin开启;变量的值就是日志文件名称.是日志文件名称的主体.MySQL 数据库自动增加文件名后缀和文件类型.
配置完成后,重启mysql服务,然后为从库创建用户:
在 MySQL 数据库中,为不存在的用户授权,就是同步创建用户并授权. 此用户是从库访问主库使用的用户 ip 地址不能写为%. 因为主从备份中,当前创建的用户,是给从库 Slave 访问主库 Master 使用的.用户必须有指定的访问地址.不能是通用地址
grant all privileges on *.* to ‘username’@’ip’ identified by ‘password’ with grant option; flush privileges;
创建完成后,刷新用户,使用命令:flush privilege
然后查询用户,查看是否添加成功
查看 Master 信息
show master status;
从库:192.168.70.149
编辑/etc/my.cnf文件,
配置server_id,从库的server_id任意配置,但是要大于主库的数字,然后重启mysql服务
配置 Slave,首先需要连接到从库,然后停止 Slave 功能使用命令:stop slave
配置主库信息
需要修改的数据是依据 Master 信息修改的. ip 是 Master 所在物理机 IP. 用户名和密码是
Master 提供的 Slave 访问用户名和密码. 日志文件是在 Master 中查看的主库信息提供的.在
Master 中使用命令 show master status 查看日志文件名称.
change master to master_host=’ip’, master_user=’username’, master_password=’password’,master_log_file=’log_file_name’;
启动 Slave 功能 命令: start slave;
查看 Slave 配置 命令:show slave status \G;
至此主从库都配置完成;可以进行测试,在主库中创建数据库,表,和插入数据,从库中会自动同步相同的;
安装 MyCat
MyCat依赖依赖于JDK,需要先安装配置JDK;
JDK安装配置完成后,只需从把从的压缩包解压即可
MyCat 目录介绍
bin 目录里是启动脚本 conf 目录里是配置文件 catlet 为 Mycat 的一个扩展功能 lib 目录里是 Mycat 和它的依赖 jar logs 目录里是 console.log 用来保存控制台日志,和 mycat.log 用来保存 mycat 的 log4j日志
MyCat 配置文件
Mycat 的架构其实很好理解,Mycat 是代理,Mycat 后面就是物理数据库。和 Web 服务器的 Nginx 类似。对于使用者来说,访问的都是 Mycat,不会接触到后端的数据库。我们现在做一个主从、读写分离。结构如下:
server.xml 常见修改内容:
schema.xml
schema.xml 是最主要的配置文件,默认的配置文件:
(1) 节点的作用是什么? 逻辑库配置 (2) 中name属性的作用是什么? 逻辑库的名称 (3) 中checkSQLschema属性的作用是什么? 是否检测 SQL 语法中的 schema 信息. (4) 中sqlMaxLimit属性的作用是什么? SQL查询的默认的分页单位 (5) 节点的作用是什么? 定义逻辑表 (6) 中name属性的作用是什么? 逻辑表名称 (7) 中dataNode属性的作用是什么? 数据节点名称. 即物理数据库中的 database 名称.多个名称使用逗号 (8) 中rule属性的作用是什么? 分片规则名称.具体的规则名称参考 rule.xml 配置文件 (9) 节点的作用是什么? 定义数据节点的标签 (10) 中name属性的作用是什么? 数据节点名称, 是定义的逻辑名称,对应具体的物理数据库 database (11) 中dataHost属性的作用是什么? 定义数据主机的标签 (12) 中database属性的作用是什么? 在 dataHost 物理机中,具体的物理数据库 database 名称. (13) 节点的作用是什么? 定义数据主机的标签 (14) 中name属性的作用是什么? 定义逻辑上的数据的主机名称 (15) 中maxCon/minCon属性的作用是什么? 定义最大/小的连接数 (16) 中dbType属性的作用是什么? 定义数据库的类型 (17) 中dbDriver属性的作用是什么? 定义数据库的驱动, native,表示使用mycat 提供的本地驱 (18) 节点的作用是什么? 写数据的数据库定义标签. 实现读写分离 (19) 中host属性的作用是什么? 自定义数据库的名 (20) 中url属性的作用是什么? 数据库的连接地址和端口 (21) 中user属性的作用是什么? 连接数据库使用的账户名 (22) 中password属性的作用是什么? 连接数据库使用的密码 (23) 节点的作用是什么? 只读数据库的定义标签 (24) 中host属性的作用是什么? 自定义数据库的名 (25) 中url属性的作用是什么? 数据库的连接地址和端口 (26) 中user属性的作用是什么? 连接数据库使用的账户名 (27) 中password属性的作用是什么? 连接数据库使用的密码
rule.xml
用于定义分片规则的配置文件.
mycat 默认的分片规则: 以 500 万为单位,实现分片规则. 逻辑库 A 对应 dataNode - db1 和 db2. 1-500 万保存在 db1 中, 500 万零 1 到 1000 万保存 在 db2 中,1000 万零 1 到 1500 万保存在 db1 中.依次类推.
MyCat读写分离及分库分片的示例:
常用的分片规则
uto-sharding-long的分片规则
以 500 万为单位,实现分片规则. 逻辑库 A 对应 dataNode - db1 和 db2. 1-500 万保存在 db1 中, 500 万零 1 到 1000 万保存在 db2 中,1000 万零 1 到 1500 万保存在 db1 中.依次类推
crc32slot的分片规则
在 CRUD 操作时,根据具体数据的 crc32 算法计算,数据应该保存在哪一个 dataNode 中
配置时需要注意的
1)id 中推荐配置主键列 2)所有的 tableRule 只能使用一次。如果需要为多个表配置相同的分片规则,那么需要在此重新定义该规则。 3)在 crc32Slot 算法中的分片数量一旦给定,MyCat 会将该分片数量和 slor 的取值范围保存到文件中。在次修改分片数量时是不会生效的,需要将该文件删除。文件位置位于 conf 4)使用 MyCat 实现分库时,先在 MyCat 中定义逻辑库与逻辑表,然后在 MyCat 的链接中执行创建表的命令必须要在 MyCat 中运行。因为 MyCat 在创建表时,会在表中添加一个新的列,列名为_slot。 5)使用 MyCat 插入数据时,语句中必须要指定所有的列。即便是一个完全项插入也不允许省略列
你可能感兴趣的:(MyCat)
从入门到精通:Spring MVC的矩阵参数、数据预处理与HTTP缓存实战
Solomon_肖哥弹架构
spring mvc java SpringMVC
肖哥弹架构跟大家“弹弹”SpringMVC设计与实战应用,需要代码关注欢迎点赞,点赞,点赞。关注公号Solomon肖哥弹架构获取更多精彩内容历史热点文章MyCat应用实战:分布式数据库中间件的实践与优化(篇幅一)图解深度剖析:MyCat架构设计与组件协同(篇幅二)一个项目代码讲清楚DO/PO/BO/AO/E/DTO/DAO/POJO/VO写代码总被Dis:5个项目案例带你掌握SOLID技巧,代码有
MySql读写分离部署(一主一从,双主双从,Mycat)
PH = 7
mysql 数据库
参考资料:参考视频参考博客视频参考资料及安装包:https://pan.baidu.com/s/1xT_WokN_xlRv0h06b6F3yg提取码:aag3Mysql主从复制部署指南(一主一从)NotePad++编辑Linux服务器文档Mysql高版本(8.0及以后)Linux安装Mysql分库分表(基于Mycat)的基本部署MySQL垂直分库(基于MyCat)
mysql分区表
咸鱼爱吃橙子
mysql 数据库
背景最近遇到一个接口查询很慢超时了,界面数据无法显示出来。分析后,发现是因为MySQL中有张表的数据量很大(1500万)导致查询很慢。除了优化索引(如联合索引、覆盖索引)、归档历史数据、引入缓存、垂直拆分(将大表中的字段按访问频率拆分成多个小表,例如:高频访问的字段放在主表中,不常访问的大字段(如JSON、TEXT类型)放在辅助表中)、水平拆分(使用Sharding-JDBC或MyCat等中间件实
Mysql水平分表(基于Mycat)及常用分片规则
PH = 7
mysql 数据库
参考资料:参考视频参考博客视频资料:链接:https://pan.baidu.com/s/1xT_WokN_xlRv0h06b6F3yg提取码:aag3Mysql分库分表(基于Mycat)的基本部署MySQL垂直分库(基于MyCat)概述:本例是在垂直分库的基础上,又作的水平分库,参照前文也可以单独拿出来做水平分库水平分表:水平分表相对于垂直分库,就多了个分片规则,即按什么规则进行分表如上,要对t
NotePad++编辑Linux服务器文档
PH = 7
服务器 运维
参考资料:参考文章相关插件链接:链接:https://pan.baidu.com/s/1PBX9NY0pPz0sBqtfNxngXA提取码:r3t7概要:通常简单的文件编辑,可以直接在Linux服务器,或客户端利用VIM命令编辑,编辑即可但是过于复杂的文件,比如Mycat的XML编辑,就很不方便,需要利用Notepad++的远程编辑功能插件的离线安装使用:因为Notepad++的插件,在线安装很容
实战!用Redisson来实现分布式锁,真香!
公众号-芋道源码
分布式 中间件 java 数据库 redis
点击上方“芋道源码”,选择“设为星标”管她前浪,还是后浪?能浪的浪,才是好浪!每天10:33更新文章,每天掉亿点点头发...源码精品专栏原创|Java2021超神之路,很肝~中文详细注释的开源项目RPC框架Dubbo源码解析网络应用框架Netty源码解析消息中间件RocketMQ源码解析数据库中间件Sharding-JDBC和MyCAT源码解析作业调度中间件Elastic-Job源码解析分布式事务
MySQL高可用
2501_91112123
adb
目录一、引言二、MySQL高可用核心技术2.1数据复制(Replication)2.2故障检测与自动切换(Failover)三、主流高可用方案对比与选型3.1主从复制(Master-Slave)3.2主主复制(Master-Master)3.3多节点集群(GroupReplication)3.4分布式中间件方案(如MyCat、ProxySQL)四、实战案例:基于MHA的主从高可用搭建4.1环境准备
Mycat中间件
只会copy的搬运工
中间件 数据库
一、案例目标(1)了解Mycat提供的读写分离功能。(2)了解MySQL数据库的主从架构。(3)构建以Mycat为中间件的读写分离数据库集群。二、案例分析1.规划节点使用Mycat作为数据库中间件服务构建读写分离的数据库集群。IP主机名节点192.168.200.70mycatMycat中间件服务节点192.168.200.80db1MariaDB数据库集群主节点192.168.200.90db2
大文件上传:秒传、断点续传、分片上传
公众号-芋道源码
中间件 java 分布式 android redis
点击上方“芋道源码”,选择“设为星标”管她前浪,还是后浪?能浪的浪,才是好浪!每天10:33更新文章,每天掉亿点点头发...源码精品专栏原创|Java2021超神之路,很肝~中文详细注释的开源项目RPC框架Dubbo源码解析网络应用框架Netty源码解析消息中间件RocketMQ源码解析数据库中间件Sharding-JDBC和MyCAT源码解析作业调度中间件Elastic-Job源码解析分布式事务
分库分表实战-- Mycat实战
Captain Leo
MySQL 数据库分布式方案 学习笔记 学习 Mycat 分库分表 架构 MySQL
Mycat实战Mycat简介Mycat是一个实现了MySQL协议的Server,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议或JDBC协议与多个MySQL服务器通信,其核心功能是分库分表和读写分离,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里或者其他数据库里。对于DBA来说,可以这么理解MycatMycat就是MySQL
SpringBoot和微服务学习记录Day1
小斌的Debug日记
spring boot 微服务 学习
分布式架构为了解决大量的用户请求,需要多台服务器,为处理某些请求将一些服务器划分为一个集群,通过一种技术来处理集群的请求典型应用:nginx:Tomcat集群Redis:哨兵模式MySQL:mycat微服务微小的服务,是针对于某一个功能或模块的小功能,单独部署微服务架构原来写的是项目都是单体架构,在架构设计中,如果用户请求量很大,某些功能频繁使用建议将功能拆分为不同模块,也就是不同的微服务Spri
Mycat与Sharding-JDBC的区别:深入对比与分析
一碗黄焖鸡三碗米饭
Java知识全面解析 java jvm 分库分表 mycat Sharding-JDBC MySQL
目录Mycat与Sharding-JDBC的区别:深入对比与分析1.Mycat和Sharding-JDBC概述1.1什么是Mycat?1.2什么是Sharding-JDBC?2.设计理念的区别2.1Mycat的架构设计2.2Sharding-JDBC的架构设计3.功能对比3.1支持的分库分表策略Mycat的分库分表策略Sharding-JDBC的分库分表策略对比:3.2读写分离Mycat的读写分离
go mysql 中间件_GitHub - wushilong/go-sharding: Mysql 分库分表中间件
网络安全技术联盟
go mysql 中间件
Go-Sharding简介数据库分库分表中间件,尽可能兼容ShardingSphere的golang实现,基于小米Gaea魔改,但是路由算法支持ShardingSphere的inline表达式风格,而不是Mycat/kingshard这类晦涩而又不灵活的配置,移除多租户功能(配置太复杂了,部署多套即可)为什么造这个轮子尝试了ShardingSphereProxy,其有着糟糕的insert性能和CP
Mycat 与分布式 ID 生成方案
今天你慧了码码码码码码码码码码
分布式
Mycat与分布式ID生成方案1.Mycat简介Mycat是一个开源的分布式数据库中间件,主要用于解决数据库分库分表、读写分离、负载均衡等问题。它支持MySQL协议,可以像使用单机数据库一样使用分布式数据库。主要功能:分库分表:将数据分散到多个数据库实例中。读写分离:将读操作和写操作分发到不同的数据库节点。负载均衡:均衡分配数据库请求,提高系统性能。分布式事务:支持分布式事务管理。2.分布式ID生
Sharding-Sphere vs Mycat vs TiDB
木一番
分库分表 TiDB
强烈推荐TiDB,这是未来大中型公司的数据库,一定的NewSQL优点:传统数据库面向磁盘设计,基于内存的存储管理及并发控制,NewSQL数据库那般高效利用中间件模式SQL解析、执行计划优化等在中间件与数据库中重复工作,效率相比较低分布式事务相比于XA进行了优化,性能更高基于paxos(或Raft)协议的多副本,实现了真正的高可用、高可靠天生支持数据分片,数据的迁移、扩容都是自动化的,大大减轻了DB
数据库必知必会系列:数据库分片与分布式事务
AI天才研究院
AI大模型企业级应用开发实战 大数据 人工智能 语言模型 Java Python 架构设计
文章目录1.背景介绍分库分表分片集群分布式事务数据迁移2.核心概念与联系主从复制活动复制CAP原则BASE理论3.核心算法原理和具体操作步骤以及数学模型公式详细讲解分库分表水平分表垂直分库分片集群垂直拆分水平切分垂直切分水平拆分根据主键范围根据业务字段划分分布式事务两阶段提交协议三阶段提交协议可靠消息最终一致性ACID四要素4.具体代码实例和详细解释说明MyCat配置文件server.xml文件s
mycat 分布式mysql_MySQL 部署分布式架构 MyCAT (五)
weixin_39782573
mycat 分布式mysql
分片(水平拆分)4.全局表业务使用场景:如果你的业务中有些数据类似于数据字典,比如配置文件的配置,常用业务的配置或者数据量不大很少变动的表,这些表往往不是特别大,而且大部分的业务场景都会用到,那么这种表适合于Mycat全局表,无须对数据进行切分,要在所有的分片上保存一份数据即可,Mycat在Join操作中,业务表与全局表进行Join聚合会优先选择相同分片内的全局表join,避免跨库Join,在进行
MySQL的集群配置和读写分离配置
lqg_zone
数据库相关 mysql 数据库
MySQL重点概念介绍分布式集群方案主从节点复制分库分表mycat读写分离参数配置MySQL主节点MySQL从节点实例讲演分布式部署性能演示独立mysql对比主从复制+读写分离参考资料:浅谈mysql集群浅谈mysql集群_mysql不同集群连接-CSDN博客MySQLReplication主从复制全方位解决方案MySQLReplication主从复制全方位解决方案-惨绿少年-博客园MySQL主从
使用mycat实现mysql的分表功能
qiaosaifei
mysql 数据库
需求:项目中需要对用户的操作日志进行记录,现在数据库中日志量过大(超过1000W),导致数据查询速度过慢,根据客户需求将日志表进行拆分。一、mycat安装及主从同步配置参考博客:https://blog.csdn.net/qiaosaifei/article/details/121424494?spm=1001.2014.3001.5502二、mycat实现单库分表参考博客:https://blo
centos8 stream 部署mycat2.0实现读写分离主从(多主)自动切换
kylin-运维
centos8stream mycat2.0 运维
内容有时间整理上传读写分离参考http://blog.ws.baby/posts/msb/mysql/mysql-read-write-separation/#mycat-2-主从自动切换需修改内容vim/usr/local/mycat/conf/clusters/master_slave.cluster.json改18“switchType”:“NOT_SWITCH”为“switchType”:
mycat和mysql
沐漜
Java学习 zookeeper
MyCat是数据库中间件,支持数据库集群,提供高可用性的数据分片集群。可以管理多个机器上的数据库组成的集群。MyCat分片:海量数据存储的解决方案。由该中间件将不同的逻辑分片(逻辑分片对应不同的数据库)进行组装。MyCat分片:什么是分片:简单的说,就是指通过某种特定的条件,将我们存放在同一个数据库中的数据分散存放到多个数据库(主机)上面,以达到分散单台设备负载的效果。数据的切片(sharding
Mycat2使用教程
晨晨OvO
工具使用教程 mycat2
运行环境框架包下载地址:mycat2-install-template-1.20.zip运行包下载地址:mycat2-1.21-release-jar-with-dependencies.jar说明解压运行环境框架包,将运行包放到mycat的lib目录下配置数据源打开conf/datasources/prototypeDs.datasource.json,修改password和url{"dbTyp
mycat配置双主双从实现mysql读写分离
Zozzoooz
mycat读写分离 mysql 数据库 java docker
docker容器下mysql主从配置mycat配置双主双从实现mysql读写分离拉取mysql5.7dockerpullmysql:5.7运行mysql镜像mysqlM1主容器:dockerrun-p3301:3306--namemysql-master1-v/usr/local/mysql-master1/conf:/etc/mysql/conf.d-v/usr/local/mysql-mast
MHA+MYCAT 高可用架构
第九系艾文
linux Linux tools 服务器 数据库 mycat mha linux
架构图如下:本次是4服务器架构如下环境:centos7.2x64mariadb10.4MHA5.7MyCat1.6.7IP规划IP功能10.1.41.166VIP10.1.41.167master,mycat,mha.node10.1.41.168slave(master),mha.node10.1.41.165slave,mycat,keepalived10.1.41.169slave,myca
mycat双主高可用架构部署-MySQL5.7环境部署第一台
龙哥·三年风水
MySQL5.7.36 分布式 高可用 架构 mysql 分布式
MySQL5.7服务器IP是192.168.31.209及192.168.31.2101、192.168.31.209:3307实例部署a、配置文件mkdir-p/data/mysql/mysql3307/{data,logs}#创建MySQL数据及日志目录vi/data/mysql/mysql3307/my3307.cnf#配置文件整理[client]#password=your_passwor
中间件的学习理解总结
DCDDDDcccc
中间件 学习
目录一、定义与作用二、主要类型数据库中间件远程过程调用中间件面向消息的中间件事务处理中间件三、特点与优势独立性高效性可扩展性可靠性四、应用场景企业应用集成分布式系统电子商务移动应用开发五、数据库中间件功能细节:应用优势:六、远程过程调用中间件功能细节:应用优势:七、面向消息的中间件功能细节:应用优势:八、事务处理中间件功能细节:应用优势:数据库中间件MyCat:ShardingSphere:远程过
32次8.21(学习playbook-roles,脚本创建数据库和表,mycat读写分离)
祎安139
运维 数据库
1.roles目录介绍files:⽤来存放由copy模块或script模块调⽤的⽂件。tasks:⾄少有⼀个main.yml⽂件,定义各tasks。handlers:有⼀个main.yml⽂件,定义各handlers。templates:⽤来存放jinjia2模板。vars:有⼀个main.yml⽂件,定义变量。meta:有⼀个main.yml⽂件,定义此⻆⾊的特殊设定及其依赖关系。注意:在每个⻆
云计算33------学习playbook-roles,脚本创建数据库和表,mycat读写分离
是小梅吖~
云计算 学习 数据库
上午1、roles(角色)介绍roles(⻆⾊):就是通过分别将variables,tasks及handlers等放置于单独的⽬录中,并可以便捷地调⽤它们的⼀种机制。假设我们要写⼀个playbook来安装管理lamp环境,那么这个playbook就会写很⻓。所以我们希望把这个很⼤的⽂件分成多个功能拆分,分成apache管理,php管理,mysql管理,然后在需要使⽤的时候直接调⽤就可以了,以免重复
Mycat2.0实战2:mycat2.0安装和启动
baiyeooo
Mycat2.0实战 运维 dba mysql
以下操作均为windows下,Linux以后看情况再补充1、在哪里下载最新版本①进入官网:MyCat2②点击下载文件服务:Indexof/2.0/(mycat.org.cn)③选择最新的版本,下载我下载的是1.22的最新版本Indexof/2.0/1.22-release/(mycat.org.cn)下载安装模板:Indexof/2.0/install-template/(mycat.org.cn
MyCat实现单库分表+代理所有表
爱笑的人、
数据库
MyCAT支持水平分片与垂直分片:水平分片:一个表格的数据分割到多个节点上,按照行分隔。垂直分片:一个数据库中多个表格A,B,C,A存储到节点1上,B存储到节点2上,C存储到节点3上。MyCat通过定义表的分片规则来实现分片,每个表格可以绑定一个分片规则,每个分片规则指定一个分片字段并绑定一个函数,来实现动态分配算法。安装mycat后解压tar-zxvfMycat-server-1.6.7.4-r
Hadoop(一)
朱辉辉33
hadoop linux
今天在诺基亚第一天开始培训大数据,因为之前没接触过Linux,所以这次一起学了,任务量还是蛮大的。
首先下载安装了Xshell软件,然后公司给了账号密码连接上了河南郑州那边的服务器,接下来开始按照给的资料学习,全英文的,头也不讲解,说锻炼我们的学习能力,然后就开始跌跌撞撞的自学。这里写部分已经运行成功的代码吧.
在hdfs下,运行hadoop fs -mkdir /u
maven An error occurred while filtering resources
blackproof
maven 报错
转:http://stackoverflow.com/questions/18145774/eclipse-an-error-occurred-while-filtering-resources
maven报错:
maven An error occurred while filtering resources
Maven -> Update Proje
jdk常用故障排查命令
daysinsun
jvm
linux下常见定位命令:
1、jps 输出Java进程
-q 只输出进程ID的名称,省略主类的名称;
-m 输出进程启动时传递给main函数的参数;
&nb
java 位移运算与乘法运算
周凡杨
java 位移 运算 乘法
对于 JAVA 编程中,适当的采用位移运算,会减少代码的运行时间,提高项目的运行效率。这个可以从一道面试题说起:
问题:
用最有效率的方法算出2 乘以8 等於几?”
答案:2 << 3
由此就引发了我的思考,为什么位移运算会比乘法运算更快呢?其实简单的想想,计算机的内存是用由 0 和 1 组成的二
java中的枚举(enmu)
g21121
java
从jdk1.5开始,java增加了enum(枚举)这个类型,但是大家在平时运用中还是比较少用到枚举的,而且很多人和我一样对枚举一知半解,下面就跟大家一起学习下enmu枚举。先看一个最简单的枚举类型,一个返回类型的枚举:
public enum ResultType {
/**
* 成功
*/
SUCCESS,
/**
* 失败
*/
FAIL,
MQ初级学习
510888780
activemq
1.下载ActiveMQ
去官方网站下载:http://activemq.apache.org/
2.运行ActiveMQ
解压缩apache-activemq-5.9.0-bin.zip到C盘,然后双击apache-activemq-5.9.0-\bin\activemq-admin.bat运行ActiveMQ程序。
启动ActiveMQ以后,登陆:http://localhos
Spring_Transactional_Propagation
布衣凌宇
spring transactional
//事务传播属性
@Transactional(propagation=Propagation.REQUIRED)//如果有事务,那么加入事务,没有的话新创建一个
@Transactional(propagation=Propagation.NOT_SUPPORTED)//这个方法不开启事务
@Transactional(propagation=Propagation.REQUIREDS_N
我的spring学习笔记12-idref与ref的区别
aijuans
spring
idref用来将容器内其他bean的id传给<constructor-arg>/<property>元素,同时提供错误验证功能。例如:
<bean id ="theTargetBean" class="..." />
<bean id ="theClientBean" class=&quo
Jqplot之折线图
antlove
js jquery Web timeseries jqplot
timeseriesChart.html
<script type="text/javascript" src="jslib/jquery.min.js"></script>
<script type="text/javascript" src="jslib/excanvas.min.js&
JDBC中事务处理应用
百合不是茶
java JDBC编程 事务控制语句
解释事务的概念; 事务控制是sql语句中的核心之一;事务控制的作用就是保证数据的正常执行与异常之后可以恢复
事务常用命令:
Commit提交
[转]ConcurrentHashMap Collections.synchronizedMap和Hashtable讨论
bijian1013
java 多线程 线程安全 HashMap
在Java类库中出现的第一个关联的集合类是Hashtable,它是JDK1.0的一部分。 Hashtable提供了一种易于使用的、线程安全的、关联的map功能,这当然也是方便的。然而,线程安全性是凭代价换来的――Hashtable的所有方法都是同步的。此时,无竞争的同步会导致可观的性能代价。Hashtable的后继者HashMap是作为JDK1.2中的集合框架的一部分出现的,它通过提供一个不同步的
ng-if与ng-show、ng-hide指令的区别和注意事项
bijian1013
JavaScript AngularJS
angularJS中的ng-show、ng-hide、ng-if指令都可以用来控制dom元素的显示或隐藏。ng-show和ng-hide根据所给表达式的值来显示或隐藏HTML元素。当赋值给ng-show指令的值为false时元素会被隐藏,值为true时元素会显示。ng-hide功能类似,使用方式相反。元素的显示或
【持久化框架MyBatis3七】MyBatis3定义typeHandler
bit1129
TypeHandler
什么是typeHandler?
typeHandler用于将某个类型的数据映射到表的某一列上,以完成MyBatis列跟某个属性的映射
内置typeHandler
MyBatis内置了很多typeHandler,这写typeHandler通过org.apache.ibatis.type.TypeHandlerRegistry进行注册,比如对于日期型数据的typeHandler,
上传下载文件rz,sz命令
bitcarter
linux命令rz
刚开始使用rz上传和sz下载命令:
因为我们是通过secureCRT终端工具进行使用的所以会有上传下载这样的需求:
我遇到的问题:
sz下载A文件10M左右,没有问题
但是将这个文件A再传到另一天服务器上时就出现传不上去,甚至出现乱码,死掉现象,具体问题
解决方法:
上传命令改为;rz -ybe
下载命令改为:sz -be filename
如果还是有问题:
那就是文
通过ngx-lua来统计nginx上的虚拟主机性能数据
ronin47
ngx-lua 统计 解禁ip
介绍
以前我们为nginx做统计,都是通过对日志的分析来完成.比较麻烦,现在基于ngx_lua插件,开发了实时统计站点状态的脚本,解放生产力.项目主页: https://github.com/skyeydemon/ngx-lua-stats 功能
支持分不同虚拟主机统计, 同一个虚拟主机下可以分不同的location统计.
可以统计与query-times request-time
java-68-把数组排成最小的数。一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的。例如输入数组{32, 321},则输出32132
bylijinnan
java
import java.util.Arrays;
import java.util.Comparator;
public class MinNumFromIntArray {
/**
* Q68输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。
* 例如输入数组{32, 321},则输出这两个能排成的最小数字32132。请给出解决问题
Oracle基本操作
ccii
Oracle SQL总结 Oracle SQL语法 Oracle基本操作 Oracle SQL
一、表操作
1. 常用数据类型
NUMBER(p,s):可变长度的数字。p表示整数加小数的最大位数,s为最大小数位数。支持最大精度为38位
NVARCHAR2(size):变长字符串,最大长度为4000字节(以字符数为单位)
VARCHAR2(size):变长字符串,最大长度为4000字节(以字节数为单位)
CHAR(size):定长字符串,最大长度为2000字节,最小为1字节,默认
[强人工智能]实现强人工智能的路线图
comsci
人工智能
1:创建一个用于记录拓扑网络连接的矩阵数据表
2:自动构造或者人工复制一个包含10万个连接(1000*1000)的流程图
3:将这个流程图导入到矩阵数据表中
4:在矩阵的每个有意义的节点中嵌入一段简单的
给Tomcat,Apache配置gzip压缩(HTTP压缩)功能
cwqcwqmax9
apache
背景:
HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求网页后,从服务器端将网页文件压缩,再下载到客户端,由客户端的浏览器负责解压缩并浏览。相对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量。更为重要的是,它可以对动态生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等输出的网页也能进行压缩,
SpringMVC and Struts2
dashuaifu
struts2 springMVC
SpringMVC VS Struts2
1:
spring3开发效率高于struts
2:
spring3 mvc可以认为已经100%零配置
3:
struts2是类级别的拦截, 一个类对应一个request上下文,
springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应
所以说从架构本身上 spring3 mvc就容易实现r
windows常用命令行命令
dcj3sjt126com
windows cmd command
在windows系统中,点击开始-运行,可以直接输入命令行,快速打开一些原本需要多次点击图标才能打开的界面,如常用的输入cmd打开dos命令行,输入taskmgr打开任务管理器。此处列出了网上搜集到的一些常用命令。winver 检查windows版本 wmimgmt.msc 打开windows管理体系结构(wmi) wupdmgr windows更新程序 wscrip
再看知名应用背后的第三方开源项目
dcj3sjt126com
ios
知名应用程序的设计和技术一直都是开发者需要学习的,同样这些应用所使用的开源框架也是不可忽视的一部分。此前《
iOS第三方开源库的吐槽和备忘》中作者ibireme列举了国内多款知名应用所使用的开源框架,并对其中一些框架进行了分析,同样国外开发者
@iOSCowboy也在博客中给我们列出了国外多款知名应用使用的开源框架。另外txx's blog中详细介绍了
Facebook Paper使用的第三
Objective-c单例模式的正确写法
jsntghf
单例 ios iPhone
一般情况下,可能我们写的单例模式是这样的:
#import <Foundation/Foundation.h>
@interface Downloader : NSObject
+ (instancetype)sharedDownloader;
@end
#import "Downloader.h"
@implementation
jquery easyui datagrid 加载成功,选中某一行
hae
jquery easyui datagrid 数据加载
1.首先你需要设置datagrid的onLoadSuccess
$(
'#dg'
).datagrid({onLoadSuccess :
function
(data){
$(
'#dg'
).datagrid(
'selectRow'
,3);
}});
2.onL
jQuery用户数字打分评价效果
ini
JavaScript html jquery Web css
效果体验:http://hovertree.com/texiao/jquery/5.htmHTML文件代码:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>jQuery用户数字打分评分代码 - HoverTree</
mybatis的paramType
kerryg
DAO sql
MyBatis传多个参数:
1、采用#{0},#{1}获得参数:
Dao层函数方法:
public User selectUser(String name,String area);
对应的Mapper.xml
<select id="selectUser" result
centos 7安装mysql5.5
MrLee23
centos
首先centos7 已经不支持mysql,因为收费了你懂得,所以内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb,以下为卸载mariadb,安装mysql的步骤。
#列出所有被安装的rpm package rpm -qa | grep mariadb
#卸载
rpm -e mariadb-libs-5.
利用thrift来实现消息群发
qifeifei
thrift
Thrift项目一般用来做内部项目接偶用的,还有能跨不同语言的功能,非常方便,一般前端系统和后台server线上都是3个节点,然后前端通过获取client来访问后台server,那么如果是多太server,就是有一个负载均衡的方法,然后最后访问其中一个节点。那么换个思路,能不能发送给所有节点的server呢,如果能就
实现一个sizeof获取Java对象大小
teasp
java HotSpot 内存 对象大小 sizeof
由于Java的设计者不想让程序员管理和了解内存的使用,我们想要知道一个对象在内存中的大小变得比较困难了。本文提供了可以获取对象的大小的方法,但是由于各个虚拟机在内存使用上可能存在不同,因此该方法不能在各虚拟机上都适用,而是仅在hotspot 32位虚拟机上,或者其它内存管理方式与hotspot 32位虚拟机相同的虚拟机上 适用。
SVN错误及处理
xiangqian0505
SVN提交文件时服务器强行关闭
在SVN服务控制台打开资源库“SVN无法读取current” ---摘自网络 写道 SVN无法读取current修复方法 Can't read file : End of file found
文件:repository/db/txn_current、repository/db/current
其中current记录当前最新版本号,txn_current记录版本库中版本