mycat读写分离简单分库-创新互联

一,环境配置

实验用的是center7 jdk1.8(center7自带默认jdk,没jdk的需要安装)
192.168.0.19(mycat)
192.168.0.14(master主)
192.168.0.13(slave从)
1.先去官网下载mycat
http://www.mycat.io/
mycat 读写分离 简单分库
2.把下载的mycat文件解压到 /usr/local/
3.配置环境
把mysql的主从配置好,这里就不说明了,配置好创建一个名为k1的库,建好了去从库上验证一下。

创新互联是一家集网站建设,上蔡企业网站建设,上蔡品牌网站建设,网站定制,上蔡网站建设报价,网络营销,网络优化,上蔡网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

二,配置读写分离

1.vim /usr/local/mycat/conf/server.xml ##配置mycat的账号及权限
<user name="root" defaultAccount="true">
<property name="password">123456</property>
<property name="schemas">k1</property>
</user>
#表示创建个root账号,密码123456,授权k1(mycat的逻辑库)的完全权限
2.vim /usr/local/mycat/conf/schema.xml ##配置mycat的逻辑库

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

        <schema name="k1" checkSQLschema="false" sqlMaxLimit="100" dataNode="fenpian1">
        </schema>
        <!--name逻辑库 dataNode分片组(可以有多个,用于对库做垂直切分),这里没有做切片,所以直接把k1的所有表直接全
分到fenpian1这个分片组-->
<dataNode name="fenpian1" dataHost="shitizu" database="k1" />
<!--定义分片组fenpian1 是由那个真实服务器组那个真实库提供的-->
    <dataHost name="shitizu" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
    <!--定义真实服务器组及策略-->
        <heartbeat>show slave status</heartbeat>
        <writeHost host="192.168.0.14" url="192.168.0.14:3306" user="root" password="123456">
        <!--真实组的写入库-->
             <readHost host="192.168.0.13" url="192.168.0.13:3306" user="root" password="123456">
             <!--真实组的读库-->
             </readHost>
        </writeHost>
    </dataHost>

</mycat:schema>

3.启动mycat 并测试
/usr/local/mycat/bin/mycat start

三.分片数据库(基于表分)

1.在增加一个数据库192.168.0.16,
在数据库里创建k1库,b2表,配置修改如下


<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

        <schema name="k1" checkSQLschema="false" sqlMaxLimit="100" >
        <table name="b1" primaryKey="id"  dataNode="fenpian1" />
        <!--已知逻辑k1库里有b1,b2两张表,基于表做切分,b1分给fenpian1,b2给fenpan2-->
        <table name="b2" primaryKey="id" dataNode="fenpian2"  />
<dataNode name="fenpian1" dataHost="shitizu" database="k1" />
<!--定义分片组fenpian1 是由那个真实服务器组那个真实库提供的-->
<dataNode name="fenpian2" dataHost="shitizu2" database="k1" />
<!--定义分片组fenpian2 是由真实服务器组shitizu2,的k1实体库提供-->
    <!--定义真实服务器组及策略-->
        <heartbeat>select user()</heartbeat>
        <writeHost host="192.168.0.14" url="192.168.0.14:3306" user="root" password="123456">
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

        <schema name="k1" checkSQLschema="false" sqlMaxLimit="100" >
        <table name="b1" primaryKey="id"  dataNode="fenpian1" />
        <!--已知逻辑k1库里有b1,b2两张表,基于表做切分,b1分给fenpian1,b2给fenpan2-->
        <table name="b2" primaryKey="id" dataNode="fenpian2"  />
        </schema>
<dataNode name="fenpian1" dataHost="shitizu" database="k1" />
<!--定义分片组fenpian1 是由那个真实服务器组那个真实库提供的-->
<dataNode name="fenpian2" dataHost="shitizu2" database="k1" />
<!--定义分片组fenpian2 是由真实服务器组shitizu2,的k1实体库提供-->
    <!--定义真实服务器组及策略-->
        <heartbeat>select user()</heartbeat>
        <writeHost host="192.168.0.14" url="192.168.0.14:3306" user="root" password="123456">
        <!--真实组的写入库-->
             <readHost host="192.168.0.13" url="192.168.0.13:3306" user="root" password="123456">
             <!--真实组的读库-->
             </readHost>
        </writeHost>
    </dataHost>

  <dataHost name="shitizu2" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
    <!--定义真实服务器组及策略-->
        <heartbeat>select user()</heartbeat>
        <writeHost host="192.168.0.16" url="192.168.0.16:3306" user="root" password="123456">
        <!--真实组的写入库-->
             <readHost host="192.168.0.16" url="192.168.0.16:3306" user="root" password="123456">
             <!--真实组的读库-->
             </readHost>
        </writeHost>
    </dataHost>

</mycat:schema>

结构图
mycat 读写分离 简单分库
用户请求过来到达mycat,mycat根据以上配置判断,如果是fenpian1分片组就转发给真实服务器组shitizu1处理,读交于slave处理,写交于master处理。如果是fenpian2分片组,就转发给真实服务器组shitizu2来处理,读写都交于192.168.0.16处理。
这样前端查询k1这个逻辑库得时候,能获取的b1,b2两个表的完整数据,但其实每个真实数据库组,只存储了只一张表,完整的数据是由mycat读取后端的两个真实服务器组组织起来的。

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

网页名称:mycat读写分离简单分库-创新互联
标题路径:https://www.cdcxhl.com/article4/cejeoe.html

成都网站建设公司_创新互联,为您提供ChatGPT企业建站App开发网页设计公司网站内链域名注册

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都app开发公司