mycat读写分离

只需要读写分离的功能,分库分表的都不需要。

涉及到的配置文件: 
1.conf/server.xml 
主要配置的是mycat的用户名和密码,mycat的用户名和密码和mysql的用户名密码是分开的,应用连接mycat就用这个用户名和密码。

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mycat:server SYSTEM "server.dtd"> <mycat:server xmlns:mycat="http://org.opencloudb/"> <system> <!-- <property name="processors">32</property> <property name="processorExecutor">32</property> <property name="serverPort">8066</property> <property name="managerPort">9066</property> --> </system> <user name="root"> <property name="password">root</property> <property name="schemas">数据库名称</property> </user> </mycat:server>

2.conf/schema.xml 
主要配置主从库的数据库连接地址信息,schema里面不能配置table的定义,如果配置了就会检查sql的语法,目前mycat还有很多问题。

 
<?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat="http://org.opencloudb/"> <schema name="数据库名称" checkSQLschema="false" dataNode="dn1"> </schema> <dataNode name="dn1" dataHost="localhost1" database="数据库名称" /> <dataHost name="localhost1" maxCon="1000" minCon="100" balance="1" dbType="mysql" dbDriver="native"> <heartbeat>select user()</heartbeat> <!-- can have multi write hosts --> <writeHost host="10.1.3.50" url="10.1.3.50:3306" user="数据库用户名" password="数据库密码"> <!-- can have multi read hosts --> <readHost host="10.1.3.5" url="10.1.3.5:3306" user="数据库用户名" password="数据库密码" /> <readHost host="10.1.3.6" url="10.1.3.6:3306" user="数据库用户名" password="数据库密码" /> </writeHost> <!--writeHost host="10.1.3.34" url="10.1.3.34:3306" user="数据库用户名" password="数据库密码"--> <!-- can have multi read hosts --> <!--readHost host="10.1.3.7" url="10.1.3.7:3306" user="数据库用户名" password="数据库密码" /--> <!--readHost host="10.1.3.8" url="10.1.3.8:3306" user="数据库用户名" password="数据库密码" /--> <!--/writeHost--> </dataHost> </mycat:schema>

高可用性以及读写分离 
MyCAT的读写分离机制如下: 
• 事务内的SQL,全部走写节点,除非某个select语句以注释/*balance*/开头 
• 自动提交的select语句会走读节点,并在所有可用读节点中间随机负载均衡 
• 当某个主节点宕机,则其全部读节点都不再被使用,因为此时,同步失败,数据已经不是最新的,MYCAT会采用另外一个主节点所对应的全部读节点来实现select负载均衡。 
• 当所有主节点都失败,则为了系统高可用性,自动提交的所有select语句仍将提交到全部存活的读节点上执行,此时系统的很多页面还是能出来数据,只是用户修改或提交会失败。

dataHost的balance属性设置为: 
• 0,不开启读写分离机制 
• 1,全部的readHost与stand by writeHost参与select语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且M1与 M2互为主备),正常情况下,M2,S1,S2都参与select语句的负载均衡。 
• 2,所有的readHost与writeHost都参与select语句的负载均衡,也就是说,当系统的写操作压力不大的情况下,所有主机都可以承担负载均衡。 
一个dataHost元素,表明进行了数据同步的一组数据库,DBA需要保证这一组数据库服务器是进行了数据同步复制的。writeHost相当于Master DB Server,而旗下的readHost则是与从数据库同步的Slave DB Server。当dataHost配置了多个writeHost的时候,任何一个writeHost宕机,Mycat 都会自动检测出来,并尝试切换到下一个可用的writeHost。

MyCAT支持高可用性的企业级特性,根据您的应用特性,可以配置如下几种策略: 
• 后端数据库配置为一主多从,并开启读写分离机制。 
• 后端数据库配置为双主双从(多从),并开启读写分离机制 
• 后端数据库配置为多主多从,并开启读写分离机制 
后面两种配置,具有更高的系统可用性,当其中一个写节点(主节点)失败后,Mycat会侦测出来(心跳机制)并自动切换到下一个写节点,MyCAT在任何时候,只会往一个写节点写数据。

转载于:https://www.cnblogs.com/xinjie10001/p/6287945.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253553.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chisel快速入门(一)

一、概述 Chisel&#xff08;Constructing Hardware In a Scala Embedded Language&#xff09;是一种嵌入在高级编程语言Scala的硬件构建语言。Chisel实际上只是一些特殊的类定义&#xff0c;预定义对象的集合&#xff0c;使用Scala的用法&#xff0c;所以在写Chisel程序时实际…

DVS/DVR常见的监控名词

英文名词 说明BNC 全称Bayonet Nut Connector&#xff0c;一种用于同轴电缆的连接器DHCP 动态主机配置协议&#xff0c;用于动态地指派配置信息DNS 域名系统&#xff0c;以用户友好的方式将名字转换为…

导出数据生成excel

前台&#xff1a; <asp:Button ID"btnMoney" runat"server" Text"经费使用总结表" CssClass"admin_cx marginleft" Height"25" OnClick"btnMoney_Click" /> 后台&#xff1a; protected void btnMoney_Cli…

U盘基本处理,U盘与移动固态硬盘

一、辨别 USB2.0 和 USB3.0 1、从USB外观上来看&#xff0c;USB2.0通常是白色或黑色&#xff0c;而USB3.0则改观为“高大上”的蓝色接口。 目前&#xff0c;部分笔记本电脑USB接口&#xff0c;已同时提供对USB2.0及USB3.0的支持&#xff0c;我们可以通过接口颜色来区别。 2、从…

UWP_小说在线阅读器:功能要求与技术要求

注&#xff1a;2017年2月23日正式提上日程 学了WP开发也有一年了&#xff0c;也没做过什么软件的。17年进发UWP&#xff0c;锻炼自己一下。做一个开源的小说阅读器吧。 既然开发一个软件。所以要设计一下吧。 功能要求&#xff1a; 可能要用到的技术&#xff0c;这个吗&#xf…

chisel快速入门(二)

上一篇见此&#xff1a; chisel快速入门&#xff08;一&#xff09;_沧海一升的博客-CSDN博客简单介绍了chisel&#xff0c;使硬件开发者能快速上手chisel。https://blog.csdn.net/qq_21842097/article/details/121415341 十、运行和测试 现在我们已经定义了模块&#xff0c;…

【WPF】设置TextBox内容为空时的提示文字

原文:【WPF】设置TextBox内容为空时的提示文字<TextBox Width"150" Margin"5"><TextBox.Resources><VisualBrush x:Key"HintText" TileMode"None" Opacity"0.5" Stretch"None" AlignmentX"Le…

视频矩阵

视频矩阵&#xff0c;就将视频图像从任意一个输入通道切换到任意一个输出通道显示。一般来讲,一个MN矩阵&#xff1a;表示它可以同时支持M路图像输入和N路图像输出。即任意的一个输入和任意的一个输出。 视频矩阵 - 基本功能和要求 一个矩阵系统通常还应该包括以下基本功能&…

Spring 教程03

spring-3 1. Xml<!-- \src\applicationContext-xml.xml --> <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance…

读书笔记之《The Art of Readable Code》Part 2

如何写好流程控制语句(if-else/switch/while/for)使得代码更可读些&#xff1f;(chap 7)* 提高条件语句的可读性(if语句, 或者bool型summary变量) if (length > 10) // Good if (10 < length) // Badwhile (bytes_received < bytes_expected) // Good while (b…

chisel快速入门(三)

前一篇见此&#xff1a; chisel快速入门&#xff08;二&#xff09;_沧海一升的博客-CSDN博客简单介绍了chisel&#xff0c;使硬件开发者能快速上手chisel。https://blog.csdn.net/qq_21842097/article/details/121418806 十四、模块的功能创建 制造用于模块构造的功能接口也…

Redis作者摊上事了:多人要求修改Redis主从复制术语master/slave

作者 | ANTIREZ、小智近日&#xff0c;Redis 作者在 GitHub 上发起了一个“用其他词汇代替 Redis 的主从复制术语”的 issue。有人认为 Redis 中的术语 master/slave &#xff08;主人 / 奴隶&#xff09;冒犯到了别人&#xff0c;要求 Redis 作者 ANTIREZ 修改这个术语&#x…

C字符串数组赋值

C字符数组赋值 举例如下&#xff1a; char a[10]; 1、定义的时候直接用字符串赋值 char a[10]"hello"; 注意&#xff1a;不能先定义再给它赋值&#xff0c;如 char a[10]; a[10]"hello"; 这样是错误的&#xff01; 2、对数组中字符逐个赋值 char a[10]{h…

WP8.1使用HttpClient类

Uri uri new Uri("http://www.cnsos.net/weburl/index.htm", UriKind.Absolute); HttpClient myClient new HttpClient(); string result await myClient.GetStringAsync(uri); await new MessageDialog(result).ShowAsync(); 转载于:https://www.cnblogs.com/wzw…

HttpClinet学习笔记

本文为学习httpClient学习过程中转载的文章&#xff0c;若涉及版权请留言。 ----------------------------- 前言 超文本传输协议&#xff08;HTTP&#xff09;也许是当今互联网上使用的最重要的协议了。Web服务&#xff0c;有网络功能的设备和网络计算的发展&#xff0c;都持续…

CMOS图像传感器——2021产品选谈

据Yole统计,2020年全球CMOS图像传感器(CIS)市场规模为207亿美元,出货量为70.08亿颗。跟其它半导体器件一样,CIS也因为疫情和生产周期长,以及各种市场因素,而导致采购和供应链紧张。Yole预计2021年将趋于平稳,销售额相比2020年略有增长(3.2%),将达到214亿美元,出货量…

LINUX 下tcp 和 udp 套接字收发缓冲区的大小决定规则 .

const int udp_recvbufsize 384 * 1024 ; int result ::setsockopt(m_hSocket, SOL_SOCKET, SO_RCVBUF, (char*)&udp_recvbufsize, sizeof(int)); // 如果是由于你发送的速率较高而引起的,如500kbit/s, 那么设置大点的UDP缓冲区是比较有效的. LINUX 下tcp 和 udp 套接…

C++匿名对象

匿名对象&#xff1a; string("hello")就是匿名对象&#xff1b; 匿名对象当做参数引用时必须加const; 转载于:https://www.cnblogs.com/achao123456/p/9634810.html

MVC源码分析 - Action查找和过滤器的执行时机

接着上一篇, 在创建好Controller之后, 有一个 this.ExecuteCore()方法, 这部分是执行的. 那么里面具体做了些什么呢? //ControllerBaseprotected virtual void Execute(RequestContext requestContext) {if (requestContext null){throw new ArgumentNullException("req…

CCIE-MPLS基础篇-实验手册

又一部前期JUSTECH&#xff08;南京捷式泰&#xff09;工程师职业发展系列丛书完整拷贝。 MPLS&#xff08;Multi-Protocol Label Switching&#xff09; 目录 1&#xff1a;MPLS 基础实验.... 3 1.1实验拓扑... 3 1.2实验需求&#xff1a;... 3 1.3实验步骤... 3 1.4校验…