mycat 安装和水平分表

1.拉取需要创建docker版的mycat资源

# 下载对应的资源
git clone https://github.com/ruanjiayu/docker.mycat
# 进入docker.mycat
cd /home/cluster/mycat/docker.mycat
# 构建镜像
docker-compose build

2.修改配置

vim config/mycat/schema.xml

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/"><schema name="dtu_prod" dataNode="dataNode1" checkSQLschema="true" sqlMaxLimit="100"><!--subTables="boards_$0-127"--><tablename="device_record"dataNode="dataNode1,dataNode2"rule="mod-long"/></schema><dataNode name="dataNode1" dataHost="dataHost1" database="dtu_prod" /><dataNode name="dataNode2" dataHost="dataHost2" database="dtu_prod" /><dataHost name="dataHost1" maxCon="1000" minCon="10" balance="0"writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1" slaveThreshold="100"><heartbeat>select user()</heartbeat><writeHosthost="ip"url="jdbc:mysql://ip:1003?useSSL=false&amp;serverTimezone=UTC&amp;characterEncoding=utf8"user="xxxx" password="xxxx"></writeHost></dataHost><dataHost name="dataHost2" maxCon="1000" minCon="10" balance="0"writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1" slaveThreshold="100"><heartbeat>select user()</heartbeat><writeHosthost="ip"url="jdbc:mysql://ip:1004?useSSL=false&amp;serverTimezone=UTC&amp;characterEncoding=utf8"user="xxxx" password="xxxx"></writeHost></dataHost></mycat:schema>


    balance
        0, 不开启读写分离机制,所有读操作都发送到当前可用的writeHost上。
        1,全部的readHost与stand by writeHost参与select语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且M1与M2互为主备),正常情况下,M2,S1,S2都参与select语句的负载均衡。
        2,所有读操作都随机的在writeHost、readhost上分发。
        3,所有读请求随机的分发到wiriterHost对应的readhost执行,writerHost不负担读压力

    writeType 表示写模式
        0,所有的操作发送到配置的第一个writehost
        1,随机发送到配置的所有writehost
        2,不执行写操作

    switchType 指的是切换的模式,目前的取值也有4种:
        -1,表示不自动切换
         1,默认值,表示自动切换
         2,基于MySQL主从同步的状态决定是否切换,心跳语句为show slave status
         3,基于MySQL galary cluster的切换机制(适合集群)(1.4.1),心跳语句为show status like ‘wsrep%‘。
  

3.rule.xml配置

	<tableRule name="mod-long"><rule><columns>record_id</columns><algorithm>mod-long</algorithm></rule></tableRule>

 columns 表主键字段名

<function name="mod-long" class="io.mycat.route.function.PartitionByMod"><!-- how many data nodes --><property name="count">2</property></function>

 要分片的数据库节点数量 我这边分成2个表

4.配置docker-compose.yml

version: '3'
services:mycat:build: .container_name: mycatvolumes:- ./config/mycat/:/mycat/conf/:ro- ./log/mycat-logs/:/mycat/logs/:rw#- /etc/localtime:/etc/localtime:ro- ./config/hosts:/etc/hosts:roports:- "8066:8066"- "9066:9066"ulimits:nproc: 65535hostname: mycat
#    mem_limit: 1024mrestart: always

 5.设置mycat的用户名,密码以及数据库名称

vim config/mycat/server.xml

<!-- Mycat 数据库用户名 --><user name="root"><!-- Mycat 数据库密码 --><property name="password">xxxx</property><!-- Mycat 数据库名 --><property name="schemas">dtu_prod</property><!-- 是否使用加密的密码,0 表示不使用加密的密码 --><property name="usingDecrypt">0</property></user>

 6.构建

docker-compose up -d

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

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

相关文章

Get请求

var xhr new XMLHttpRequest(); xhr.open(“GET”, “http://localhost:8080/hello/hi”); xhr.send(null); xhr.onload function(e) { var xhr e.target; console.log(xhr.responseText); } 打开跨站源网站&#xff0c;例如www.baidu.com&#xff0c;浏览器F12&#xff0c…

卷麻了,00后测试用例写的比我还好,简直无地自容...........

经常看到无论是刚入职场的新人&#xff0c;还是工作了一段时间的老人&#xff0c;都会对编写测试用例感到困扰&#xff1f;例如&#xff1a; 如何编写测试用例&#xff1f; 作为一个测试新人&#xff0c;刚开始接触测试&#xff0c;对于怎么写测试用例很是头疼&#xff0c;无法…

【VTK三维重建-体绘制】第五期 vtkLODProp3D

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ&#xff1a;870202403 前言 本文分享VTK中体绘制中的vtkLODProp3D对象&#xff0c;希望对各位小伙伴有所帮助&#xff01; 感谢各位小伙伴的点赞关注&#xff0c;小易会继续努力分享&#xff0c;一起进步&#xff01; 你的点赞…

力扣-42.接雨水

题目&#xff1a; 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组[0,1,0,2…

水稻潜在产量估算解决方案

1.背景与技术路线 统计资料表明&#xff0c;尽管我国粮食单产已由 50 年代初期的 1.2t/ha 增加到如今的 5.2t/h&#xff0c;粮食产量增加了 4 倍&#xff0c;但我国人口的增长速度与气候变化导致的农业生产的不确定性&#xff0c; 在水稻收获指数保持稳定的情况下&#xff0c;…

话不多说,在Linux上完成Python从源码编译安装全流程

话不多说&#xff0c;直接上代码&#xff1a; # 安装工具链&#xff0c;如果已装完请跳过 sudo apt-get install -y gcc g make cmake zlib1g zlib1g-dev libbz2-dev libsqlite3-dev libssl-dev libxslt1-dev libffi-dev unzip pciutils net-tools libncursesw5-dev# 把需要安…

从vue小白到高手,从一个内容管理网站开始实战开发第六天,登录功能后台功能设计--API项目中的登录实现(一)

从vue小白到高手,从一个内容管理网站开始实战开发第五天,登录功能后台功能设计--数据库与API项目-CSDN博客文章浏览阅读348次,点赞9次,收藏7次。本次文章主要讲了开发后台API项目给前台vue调用的话,需要使用的数据库并新建数据库和表、安装开发工具、如何创建API项目以及A…

mysql死锁排查

查看正在进行中的事务 SELECT * FROM information_schema.INNODB_TRX;字段解释trx_id唯一事务id号&#xff0c;只读事务和非锁事务是不会创建id的trx_state事务的执行状态&#xff0c;值一般分为&#xff1a;RUNNING, LOCK WAIT, ROLLING BACK, and COMMITTING.trx_started事务…

私域和微商有什么区别?

私域和微商到底有什么区别呢&#xff1f;其实这两个东西有着本质性区别。 私域&#xff1a; 通过原有商业或者新媒体方式获取粉丝或顾客&#xff0c;然后用微信等社交工具&#xff0c;多方位展现&#xff0c;人格专业。 最终目标是让粉丝或顾客成为品牌或IP的朋友&#xff0…

3个.NET开源简单易用的任务调度框架

前言 今天分享3个.NET开源、简单、易用的任务调度框架&#xff0c;帮助大家在做定时任务调度框架技术选型的时候有一个参考。 Quartz.Net Quartz.NET是一个功能齐全的开源作业调度系统&#xff0c;可用于从最小的应用程序到大规模企业系统。 Quartz.NetUI Quartz.NetUI是一…

HackTheBox - Medium - Linux - BroScience

BroScience BroScience 是一款中等难度的 Linux 机器&#xff0c;其特点是 Web 应用程序容易受到“LFI”的攻击。通过读取目标上的任意文件的能力&#xff0c;攻击者可以深入了解帐户激活码的生成方式&#xff0c;从而能够创建一组可能有效的令牌来激活新创建的帐户。登录后&a…

Linux之IP地址、主机名、域名解析

一、IP地址 可以通过ifconfig命令查看本机的ip地址&#xff0c;如果无法使用ifconfig命令&#xff0c;可以安装 安装&#xff1a;yum -y install net-tools ens33&#xff1a;主网卡&#xff0c;里面的inet就是ip地址 lo&#xff1a;本地回环网卡&#xff0c;127.0.0.1&…