博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一步一步在Windows中使用MyCat负载均衡 上篇
阅读量:6178 次
发布时间:2019-06-21

本文共 6195 字,大约阅读时间需要 20 分钟。

  传统关系型数据库的分布式开发通常需要自己做,不仅耗时耗力而且效果不是很理想,当想快速搭建时,最初想到的是看有没有第三方,网上牛人还是很多的,做得比较好的其中之一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 配置文件存放配置文件:

--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虚拟的数据库,供上层应用访问。

123456
TESTDB
123456
TESTDB
true

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

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

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配置文件,可以先不管。

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下如何使用。

 

转载地址:http://yfkda.baihongyu.com/

你可能感兴趣的文章
3.5 数组
查看>>
XAlign:用于代码对齐的Xcode插件
查看>>
sqlserver表分区的相关总结
查看>>
exchange 2010 专题- 个人存档
查看>>
java
查看>>
Tomcat集群Cluster实现原理
查看>>
人人都应当控制的一些电脑操作技能
查看>>
百度echarts自定义主题使用
查看>>
ASP.NET MVC3中给DropDownList添加默认选项
查看>>
洛谷 1373 小a和uim之大逃离
查看>>
一不小心把win10的秘钥卸载了解决方法
查看>>
SilverLight之向后台请求数据-WebClient
查看>>
HDU Problem 1260 Tickets 【dp】
查看>>
STL map容器常用API
查看>>
队列的顺序存储---顺序队列
查看>>
Delphi 读取 c# webservice XML的base64编码图片字符串转化图片并显示
查看>>
第三天
查看>>
connector for python
查看>>
等价类划分的应用
查看>>
Web Service(下)
查看>>