一步一步在Windows中运用MyCat负载均衡 下篇

之前在一步一步在Windows中选用MyCat负载均衡
上篇
中早已讲了什么布署出MyCat。下边讲其连带的选用。

五、配置MyCat-eye

对此MyCat监控官网还提供一个MyCat-eye web系统来显示它的运作情形。

MyCat发展到近来的本子,已经不是一个一味的MySQL代理了,它的后端可以帮衬MySQL、SQL
Server、Oracle、DB2、PostgreSQL等主流数据库,也支持MongoDB那种新颖NoSQL格局的囤积,将来还会支撑更加多花色的仓储。而在最后用户看来,无论是那种存储格局,在MyCat里,都是一个价值观的数据库表,支持标准的SQL语句举办数据的操作,那样一来,对前者业务体系的话,可以大幅减退开发难度,进步开发进程

MyCAT-WEB就是按照mycat的一个性质监控工具,方便我们更管用的运用mycat管理mycat监控mycat,让我们的mycat工作愈发高效。

NoSQL,下载:http://dl.mycat.io/

运行eye在此以前还须求安 zookeeper,所以先安装zookeeper

解压到 D:\zookeeper-3.4.6

到目录conf 下创造 zoo.cfg 文件,默认就是加载那个文件,文件内容
我直接copy 的sample里面的

😉

#zoo.cfg 的内容

#  心跳检查的岁月 2秒

tickTime=2000

# 初阶化时 连接到服务器端的区间次数,总时间10*2=20秒

initLimit=10

# ZK Leader 和follower 之间通讯的次数,总时间5*2=10秒

syncLimit=5

#
存储内存中数据库快照的岗位,即使不设置参数,更新工作日志将被贮存到默许地方。

dataDir=D:\\zookeeper-3.4.6\\zkdata

# 错误日志的存放地点

dataLogDir=F:\\zookeeper-3.4.6\\logs

# ZK 服务器端的监听端口

clientPort=2181

😉

然后 cd 到bin 目录下 执行zkServer.cmd 就启动成功了。

专注:dataDir  和  dataLogDir 目录不会自行成立,得手动创制才能启动。

可以用netstat -ano|findstr “2181” 看看是不是OK。

也足以用JPS 查看启动的JAVA 进度的情形,会出现那样

C:\windows\system32>jps

8068

10040 QuorumPeerMain  // 那东西是zk的事物,源码有介绍

10556 Jps

也足以用自带客户端命令 :  zkCli.cmd -server 127.0.0.1:2181

至于JPS的事物,能够团结去JAVA_HOME\bin 目录下来看,里面很多指令

安装好zookeeper后,启动MyCat

windows启动

启动start.bat

inux启动

启动start.sh

打开mycat-web窗口

输入网址:http://localhost:8082/mycat/

若没安排好zookeeper会出现上面的页面

当配置好后会出现:

添加mycat服务,用户名,密码为事先安顿的mycat ,123456,保存

仍可以加上对mysql的监察,在mysql管理中添加。

对SQL的督查我那测试了几天,还没多少,可能什么地方配置没有加,所以前边再处理。eye具体的行使材料网上不是诸多,要求团结探索。

六、在NET中使用MyCat

鉴于MyCAT与MySQL协议有些许差别,开发者可能不可见一向行使Oracle官方提供的Mysql.Data(ADO层)来与MyCAT间接连接,由此大家更加为.NET开发者设计了针对性MyCAT优化过的ADO层驱动,即Pomelo.Data.MyCat,开发者通过运用MyCatConnection、MyCatCommand类可以兑现对MyCAT的总是与查询。上边将显得一个粗略的拔取MyCat
for ADO.NET来向MyCAT写入数据。

在vs中nuget引入Pomelo.Data.MyCat,但安装报上面的错

谬误提醒net框架4.5版本低了,所以调到4.6。

MyCatConnection, MyCatCommand等情节在命名空间 Pomelo.Data.MyCat 中.
根据常规的ADO.NET开发流程即可兑现对MyCAT的操作。

Pomelo.Data.MyCat的应用与mysql一致:

包裹基础代码:

😉

privatestaticreadonlystringconnectionString
=”server=localhost;database=TESTDB;uid=mycat;pwd=123456″;//////执行SQL语句,再次回到影响的笔录数//////SQL语句///影响的笔录数publicstaticintExecuteSql(stringSQLString,paramsMyCatParameter[]
cmdParms)

{using(MyCatConnection connection =newMyCatConnection(connectionString))

{using(MyCatCommand cmd =newMyCatCommand())

{try{

PrepareCommand(cmd, connection,null, SQLString, cmdParms);introws
=cmd.ExecuteNonQuery();

cmd.Parameters.Clear();returnrows;

}catch(MyCatException e)

{throwe;

}

}

}

}//////执行查询语句,再次回到DataSet//////查询语句///DataSetpublicstaticDataSet
Query(stringSQLString)

{using(MyCatConnection connection =newMyCatConnection(connectionString))

{

DataSet ds=newDataSet();try{

connection.Open();

MyCatDataAdapter command=newMyCatDataAdapter(SQLString, connection);

command.Fill(ds,”ds”);

}catch(MyCatException ex)

{thrownewException(ex.Message);

}returnds;

}

}privatestaticvoidPrepareCommand(MyCatCommand cmd, MyCatConnection conn,
MyCatTransaction trans,stringcmdText, MyCatParameter[] cmdParms)

{if(conn.State !=ConnectionState.Open)

conn.Open();

cmd.Connection=conn;

cmd.CommandText=cmdText;if(trans !=null)

cmd.Transaction=trans;

cmd.CommandType= CommandType.Text;//cmdType;if(cmdParms !=null)

{foreach(MyCatParameter parameterincmdParms)

{if((parameter.Direction == ParameterDirection.InputOutput ||
parameter.Direction == ParameterDirection.Input)
&&(parameter.Value==null))

{

parameter.Value=DBNull.Value;

}

cmd.Parameters.Add(parameter);

}

}

}

😉

插入数据:

😉

stringname =textBox1.Text;if(string.IsNullOrEmpty(name))return;

StringBuilder strSql=newStringBuilder();

strSql.Append(“insert into hotnews(“);

strSql.Append(“newsname)”);

strSql.Append(“values (“);

strSql.Append(“@newsname)”);

MyCatParameter[] parameters={newMyCatParameter(“@newsname”,
MyCatDbType.VarChar,100),

};

parameters[0].Value =name;introws =ExecuteSql(strSql.ToString(),
parameters);if(rows >0)

{

label1.Text=”添加事业有成”;

}else{

label1.Text=”添加失败”;

}

😉

询问数据:

😉

StringBuilder strSql =newStringBuilder();

strSql.Append(“select *”);

strSql.Append(“FROM hotnews”);

DataSet ds=Query(strSql.ToString());

dataGridView1.DataSource= ds.Tables[0];

😉

七、注意

MyCat
主键ID自增长配置,但保留时仍旧会见世上边的景色,当仍然没指定ID时,插入的ID仍旧上面的ID会导致插入败北,由此想做分布式最好是将ID设置为协调生成GUID,那样不管哪个库都是全局唯一。若仍旧想自增型,可以参照园友那篇:MyCat
主键ID自增加配置

内需提示的是MyCat不仅用于MySQL,而且协理Oracle、DB2、SQL
Server、PostgreSQL等

依据心跳的活动故障切换,匡助读写分离,帮衬MySQL主从,以及galera
cluster集群

支撑单库内部任意join,协助跨库2表join,甚至根据caltlet的多表join

支撑数据的多片自动路由与聚集,扶助sum,count,max等常用的聚合函数,支持跨库分页

更多职能请参见官网

MyCat官网:http://www.mycat.org.cn/

网站地图xml地图