1.MySQL高可用
        主从复制      一主多备      多主多备
        读写分离      减少IO开销,防止阻塞等等

2.主从复制参考

https://www.cnblogs.com/chx9832/p/12342626.html

3.MySQL读写分离------Mycat
        1.Mycat暴露给外界访问ip地址,mycat在那一台机器上
        2.ip就是对应机器ip,Mycat会虚拟出一个数据库,供外界连接  如:jdbc:mysql://192.168.xx.xx/dbname
        3.Mycat会指定权限,让从机只能读,让主机能写能读,一般主机只做写
                
    
4.Mycat使用:
      
        4.1 解压mycat,不要放在有中文目录的地方
        4.2 修改mycat解压目录下的conf文件夹中server.xml文件,配置账户
            <!-- 添加user -->
           <user name="mycat_master">
            <property name="password">mycat_master</property>
            <property name="schemas">mycat</property>
           </user>
            
            <!-- 添加user -->
           <user name="mycat_slave">
            <property name="password">mycat_slave</property>
            <property name="schemas">mycat</property>
            <property name="readOnly">true</property>
           </user>

4.3 配置schema.xml文件
            <schema name="mycat" checkSQLschema="true" sqlMaxLimit="100">
                <table name="t_users" primaryKey="user_id" dataNode="dn1" rule="rule1"/>
                <table name="t_message" type="global" primaryKey="messages_id" dataNode="dn1" />
            </schema>
            <dataNode name="dn1" dataHost="jdbchost" database="weibo_simple" />
           
            <dataHost name="jdbchost" maxCon="1000" minCon="10" balance="1"
                        writeType="0" dbType="mysql" dbDriver="native" switchType="1"
                        slaveThreshold="100">
                <heartbeat>select user()</heartbeat>  
                <writeHost host="hostMaster" url="192.168.7.11:3306" user="root" password="root">
                </writeHost>
                <writeHost host="hostSlave" url="192.168.7.22:3306" user="root" password="root"/>
            </dataHost>

4.4 配置rule.xml
            <tableRule name="rule1">
                <rule>
                    <columns>user_id</columns>
                    <algorithm>func1</algorithm>
                </rule>
            </tableRule>
            <function name="func1" class="org.opencloudb.route.function.AutoPartitionByLong">
            <property name="mapFile">autopartition-long.txt</property>
            </function>
        4.5 配置启动日志log4j.xml
            <level value="debug" />
        
        4.6 启动mycat  端口:8066
            启动bin下startup_nowrap.bat

使用sqlyog模拟jdbc连接

新建一个主机的虚拟连接

连接成功后,就出现了配置的俩张表

虚拟主机可以执行读写操作,添加一条数据测试

回到主机查看,写操作成功

从机同样也是会同步这条数据

再新建一个连接,建立一个虚拟从机的连接

尝试修改之前的数据

提示只读

这样也就保证了

从机只能读不能写

做到了读写分离

最新文章

  1. SSH实战 &#183; 唯唯乐购项目(中)
  2. plain framework 1 网络流 缓存数据详解
  3. C#-WinForm-Winform TextBox中只能输入数字的几种常用方法(C#)
  4. Android:Intel Atom x86模拟器的安装与使用
  5. android studio SDK版本的调节
  6. node.js小工具--修改Xcode &#39;Create by&#39;作者名称
  7. 开发语言大PK:php和Java哪个更好?
  8. 微软SQLHelper.cs类
  9. first blood暴力搜索,剪枝是关键
  10. 学习笔记 broswerify + watchify + beefy
  11. [Swift]LeetCode213. 打家劫舍 II | House Robber II
  12. k8s的flannel的pod运行一段时间init error
  13. socket编程 ------ UDP服务器
  14. 身份证号校验原理及JavaScript实现
  15. beginner’s mistake
  16. ABS PBT POM材质键冒
  17. 解决Spring Boot中,通过filter打印post请求的 request body 问题
  18. php curl那点事儿
  19. 【线段树】【CF1083C】 Max Mex
  20. Android Service使用简单介绍

热门文章

  1. 全局对象的构造函数会在main函数之前执行?
  2. The Top 500 Worst Passwords (2008)
  3. content-type常见类型辨析(以ajax与springmvc前后端交互为例)
  4. 构建ROP链实现远程栈溢出
  5. docker-compose 常用命令整理:
  6. 利用十字链表存储树结构(便于同时求出某一点的入度与出度)------C语言实现
  7. mac 经常使用的快捷键操作
  8. centos7安装node.js
  9. Oracle中将列查询结果多行逗号拼接成一个大字段
  10. Python当中的len(),str(),input(),print()函数当中值得注意的点