学习目标与内容
运维解决方案
读写分离常见的实现方式
MySQL读写分离案列实现
主从复制master配置
主从复制slave配置
简单业务代码实现
用以下代码通过停启主从服务器来检查主从复制原理~
<?php
//创建类
class Mysql {
//构造方法
//当类被实例化时,会触发此方法
public function __construct(){
$this->master = @new mysqli('192.168.17.100','tp5shop','$Abc3721','tp5shop');
$this->slave = @new mysqli('192.168.17.105','tp5shop','$Abc3721','tp5shop');
// 如果从连接报错,就连接主
if($this->slave->connect_errno){
$this->slave=$this->master;
}
}
// //SQL执行方法
public function query($sql){
//判断语句中是否存在selete
if(strpos($sql, 'select') !== false){
//这是查询操作
$rs = $this->slave->query($sql);
}else{
$rs = $this->master->query($sql);
}
return $rs;
}
}
$mysql = new Mysql();
$sql = "select * from tpshop_goods";
$rs = $mysql->query($sql);
while($row = $rs->fetch_assoc()){
var_dump($row['goods_name']);
}
框架配置实现读写分离
vim /usr/local/nginx/html/tp5shop/application/database.php
MyCAT实现读写分离
jdk和jre区别及其静态编译型语言和动态解释性语言的区别
动态脚本语言:
静态编译语言:
mycat安装和测试启动
确认mycat是否真的启动,查看它的端口 9066 8066
netstat -lntp|grep 8066
Tip:如果配置之后,启动mycat,不能够启动
通过查看 /usr/local/mycat/logs/wrapper.log
配置读写分离
mycat的客户端和管理端使用
业务代码配置连接mycat中间件
balance属性和writeType属性