怎样实现Mycat读写分离与负载均衡

75次阅读
没有评论

共计 2388 个字符,预计需要花费 6 分钟才能阅读完成。

怎样实现 Mycat 读写分离与负载均衡,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面丸趣 TV 小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

我们来学习读写分离与负载均衡
先看一下 balance 属性

负载均衡类型,目前的取值有 3 种:
1. balance= 0 ,  不开启读写分离机制,所有读操作都发送到当前可用的 writeHost 上。

2. balance= 1,全部的 readHost 与 stand by writeHost 参与 select 语句的负载均衡,简单的说,当双主双从模式(M1- S1,M2- S2,并且 M1 与  M2 互为主备),正常情况下,M2,S1,S2 都参与 select 语句的负载均衡。

3. balance= 2,所有读操作都随机的在 writeHost、readhost 上分发。

4. balance= 3,所有读请求随机的分发到 wiriterHost 对应的 readhost 执行,writerHost 不负担读压力,注意 balance= 3 只在 1.4 及其以后版本有,1.3 没有。

writeType 属性

负载均衡类型,目前的取值有 3 种:

1. writeType= 0 ,  所有写操作发送到配置的第一个 writeHost,第一个挂了切到还生存的第二个 writeHost,重新启动后已切换后的为准,切换记录在配置文件中:dnindex.properties .

2. writeType= 1,所有写操作都随机的发送到配置的 writeHost。 

3. writeType= 2,没实现。

所以我们根据第二种方式做负载均衡

dataNode name= dn1 dataHost= localhost1 database= examdb /

  dataNode name= dn2 dataHost= localhost2 database= examdb /

  dataNode name= dn3 dataHost= localhost3 database= examdb /

  dataHost name= localhost1 maxCon= 1000 minCon= 10 balance= 2

 writeType= 0 dbType= mysql dbDriver= native switchType= 1 slaveThreshold= 100

  heartbeat select user() /heartbeat

  !– can have multi write hosts —

  writeHost host= hostM1 url= 192.168.6.121:3306 user= root

 password= ESBecs00

  !– can have multi read hosts —

  /writeHost

 

  writeHost host= hostS1 url= 192.168.6.121:3307 user= root

 password= ESBecs00

  !– can have multi read hosts —

  /writeHost

  /dataHost

 

  dataHost name= localhost2 maxCon= 1000 minCon= 10 balance= 2

 writeType= 0 dbType= mysql dbDriver= native switchType= 1 slaveThreshold= 100

  heartbeat select user() /heartbeat

  !– can have multi write hosts —

  writeHost host= hostM1 url= 192.168.6.120:3306 user= root

 password= ESBecs00

  !– can have multi read hosts —

  /writeHost

 

  writeHost host= hostS1 url= 192.168.6.120:3307 user= root

 password= ESBecs00

  !– can have multi read hosts —

  /writeHost

  /dataHost

  dataHost name= localhost3 maxCon= 1000 minCon= 10 balance= 2

 writeType= 0 dbType= mysql dbDriver= native switchType= 1 slaveThreshold= 100

  heartbeat select user() /heartbeat

  !– can have multi write hosts —

  writeHost host= hostM1 url= 192.168.6.119:3306 user= root

 password= ESBecs00

  !– can have multi read hosts —

  /writeHost

 

  writeHost host= hostM1 url= 192.168.6.119:3307 user= root

 password= ESBecs00

  !– can have multi read hosts —

  /writeHost

  /dataHost

测试

  #!/usr/bin/bash
for((i=1;i =1000;i++))
do
mysql -uroot -p123456 -P8066 -h227.0.0.1  -e select name from company TESTDB;
done
   

root@localhost logs]# sort test-blance.log |more |uniq -c 

     30 this is 119
     17 this is 119:3307
     28 this is 120
     23 this is 120:3307
     36 this is 121
     26 this is 121:3307

如上:6 台机器全部都有读到,读负载均衡成功

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注丸趣 TV 行业资讯频道,感谢您对丸趣 TV 的支持。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-19发表,共计2388字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)