一步一步在Windows中使用MyCat负载均衡 上篇 您所在的位置:网站首页 mycat配置文件配置未启动的从库 一步一步在Windows中使用MyCat负载均衡 上篇

一步一步在Windows中使用MyCat负载均衡 上篇

2024-06-03 10:20| 来源: 网络整理| 查看: 265

  传统关系型数据库的分布式开发通常需要自己做,不仅耗时耗力而且效果不是很理想,当想快速搭建时,最初想到的是看有没有第三方,网上牛人还是很多的,做得比较好的其中之一Mycat,它是开源的分布式数据库系统,解决数据库的负载均衡,主备复制,读写分离,简单来说就是你只管直接与mycat通讯,至于分离什么的交给它里面自己做,其它啥都不用操心。

  至于什么是MyCat有什么优势,可以看看官网介绍  Mycat 数据库分库分表中间件 。

上图是MyCat架构图。

  MyCat可以与HAProxy使用实现高可用数据库集群,更深入的内容自己去查,本章只详讲从0开始使用MyCat 基础篇,至少能先跑起来。

一、下载

   本次运行环境为windows,Linux下更好吧,然后数据库用mysql,需要java环境,下载jdk8

  jdk安装配置 1. 首先去oracle官网下载并安装jdk8,添加环境变量,JAVA_HOME设置为D:\Java\jdk1.8 2. CLASSPATH设置为.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar 3. path系统变量追加%JAVA_HOME%\bin;

  安装Mysql,需要注意的是数据库,表,字段的编码都采用utf8吧,否则插入的中文显示为乱码,具体解决方法网上查一查,去试一试。

  下载MyCat,http://dl.mycat.io/   选择最新的版本下载。

二、配置

   下载解压后就要先配置MyCat了,(这里不是exe文件,没有安装,配置好后直接运行startup_nowrap.bat)

   打开mycat\conf里面的startup_nowrap.bat 为了降低资源占用,mycat的jvm设置在startup_nowrap.bat 可以清楚看到如下配置: “%JAVA_CMD%” -server -Xms1G -Xmx2G -XX:MaxPermSize=64M -XX:+AggressiveOpts -XX:MaxDirectMemorySize=1G -DMYCAT_HOME=%MYCAT_HOME% -cp “..\conf;..\lib*” io.mycat.MycatStartup 这里将-Xms1G改成-Xms512M,-Xmx2G改成-Xmx1024M,保存后重新启动即可。

   添加Windows环境变量,MYCAT_HOME设置为安装目录D:\MycatServer1.5 

   修改wrapper.conf文件里的改成wrapper.java.command=D:\jdk1.8\bin\java.exe

三、连接MySQL

   Mycat绑定MySQL 启动的配置

  conf 配置文件存放配置文件:

代码语言:javascript复制 --server.xml:是Mycat服务器参数调整和用户授权的配置文件。 --schema.xml:是逻辑库定义和表以及分片定义的配置文件。 --rule.xml: 是分片规则的配置文件,分片规则的具体一些参数信息单独存放为文件,也在这个目录下,配置文件修改需要重启MyCAT。 --log4j.xml: 日志存放在logs/log中,每天一个文件,日志的配置是在conf/log4j.xml中,根据自己的需要可以调整输出级别为debug debug级别下,会输出更多的信息,方便排查问题。 --autopartition-long.txt,partition-hash-int.txt,sequence_conf.properties, sequence_db_conf.properties 分片相关的id分片规则配置文件 --lib MyCAT自身的jar包或依赖的jar包的存放目录。 --logs MyCAT日志的存放目录。日志存放在logs/log中,每天一个文件

具体什么意思后面慢慢看。

  先解决主配置,server.xml配置文件配置访问用户及权限, 修改高亮处信息,其中mycat、user为访问mycat的用户,TESTDB为mycat虚拟的数据库,供上层应用访问。

代码语言:javascript复制 123456 TESTDB 123456 TESTDB true

   mycat的数据库配置是在schema.xml中配置,这部分不太好理解,精简了一下,主要分schema、dataNode、dataHost三个主要配置。

  节点定义了mycat的虚拟数据库为TESTDB,下面借用园友的说明:

代码语言:javascript复制 select user()

  以上配置注意高亮部分,配置的是每个dn对应哪个实体服务器里面哪个实体库(此处只有本机,所以都绑定到本机localhost,再添加3个不同的数据库TESTDB1\TESTDB2\TESTDB3,手动都添加要测试的表,若有多余的服务器可以将ip替换掉测试),详细的内容参考文中的注释。

  经过实验 goods表:在mycat的TESTDB的虚拟表goods中添加一行记录会在 TESTDB1和TESTDB2中的表goods同步添加一行记录。

  hotnews表:在mycat的TESTDB的虚拟表hotnews中添加的一行记录会随机插入 TESTDB1、TESTDB2、TESTDB3的其中一个库中的hotnews表。

  其它表的测试你们自己试试。

  这就是分片,靠的是分片规则,下面就来看rule。

  (每个数据库中相同的表要手工提前生成表结构,否则会提示找不到此表,操作mycat时它并不能自动同步实体数据库生成,可能有方法,现在还没深入了解)

rule.xml配置文件,可以先不管。

代码语言:javascript复制 id func1 user_id func1 sharding_id hash-int id rang-long id mod-long id murmur create_date partbymonth calldate latestMonth id rang-mod id jump-consistent-hash 0 2 160 partition-hash-int.txt autopartition-long.txt 3 8 128 24 yyyy-MM-dd 2015-01-01 partition-range-mod.txt 3 四、运行

  用管理员权限运行startup_nowrap.bat启动MyCat。

   若出现上面的问题,检查java的环境是否正确和mycat的环境配置。

启动成功后会出现:

  #如果启动失败,请修改D:\mycat\bin\startup_nowrap.bat文件中的以下参数。默认占用内存为2G D:\dev-bin\mycat\bin>"C:\Program Files (x86)\Java\jdk1.7.0_13/bin/java" -server -Xms512m -Xmx512m -XX:MaxPermSize=64M -XX:+AggressiveOpts -XX:MaxDirectMemorySize=768m -DMYCAT_HOME=D:\ p "..\conf;..\lib\*" io.mycat.MycatStartup

  然后dos中会不停的出现心跳检测,有错误信息可去mycat\logs中查看日志。

   注意:如日志中出现192.168.xxx not connected 等信息,请允许对应的mysql远程访问,且先提前独自检查mysql都能正确访问。

  使用navicat连接mycat,操作方式和连接物理mysql库一致,用户mycat,密码123456,端口8066   连接成功后,将看到TESTDB数据库和hotnews等数据表   在hotnews表中添加一些数据,保存   执行select * from hotnews 查看操作,然后去TESTDB1、TESTDB2、TESTDB3中查询hotnews表

  MyCat中TESTDB是中间件逻辑数据库,MySQL中的testdb、testdb2、testdb3是真实的数据库。

  在mycat中添加数据时若提示testdb2.hotnews不存在,则要手动在testdb2中添加相同表结构。

  添加完后,可以看到hotnews记录在三个testdb、testdb2、testdb3中是均衡随机插入的。

  而goods在testdb、testdb2中是一样的。

至此可以配置出MyCat了,敬请期待下篇 net下如何使用。


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有