美高梅集团4688Swoole 通晓manager进度和worker进度的启动顺序,以及演示怎样截止或许重启服务端。

美高梅集团4688 1

修改server-id= 11

美高梅集团4688 2

1)单点故障

<?php
//创建Server对象,监听 127.0.0.1:9501端口
$serv = new swoole_server("127.0.0.1", 9501);
$serv->set(array(
    'max_request ' => 10, //reactor thread num
    'worker_num' => 4,    //worker process num
    'log_file' => 'swoole.log',
    'pid_file' => 'server.pid',
));



$serv->on('managerStart',function($serv){
    swoole_set_process_name("managerprocess");
});

$serv->on('workerStart',function($serv, $worker_id){
    if($worker_id >= $serv->setting['worker_num']) {
        swoole_set_process_name("workprocess_".($worker_id-$serv->setting['worker_num']));
    } else {
        swoole_set_process_name("workprocess_{$worker_id}");
    }
});
$serv->on('start',function($serv){
    echo "到这一步说明服务已经起来了,manager,work都已经回调start完成";
});
//监听连接进入事件
$serv->on('connect', function ($serv, $fd) {  
    echo "Client: Connect.\n";
});

//监听数据接收事件
$serv->on('receive', function ($serv, $fd, $from_id, $data) {
    $serv->send($fd, "Server: ".$data);
});

//监听连接关闭事件
$serv->on('close', function ($serv, $fd) {
    echo "Client: Close.\n";
});

//启动服务器
$serv->start(); 

一、理论篇

翻看进程,在server->start 后,拉起workNum+2(master,manager进度)。

relay-log-index=salve-relay-bin.index

然后实施退出

4、从服务器开启SQL线程将二进制日志内容执行,完结数据同步。

再查看进程

1、增添MySQL数据库服务器,对数据开展备份,形成主备

美高梅集团4688 3

mysql -uroot -p123123

 

3)混合类型的复制

 测试的代码首要效能:开启一个tcp服务器。然后设置了管住进程和办事进度start的回调进行更名。设置了pid_file保存了服务端启动的mast进度。

4、查看授权表:mysql> show

<?php
    $options  = 's';
    $command = getopt($options);
    $pidFile = 'server.pid';
    if(isset($command['s'])){
        if($command['s']=='stop'){
            stop();
        }else{
            reload();
        }
    }else{
        die("请输入-s stop|reload");
    }

    function stop(){
        global $pidFile;
        if (file_exists($pidFile)) {
            $pid = file_get_contents($pidFile);

            if (!swoole_process::kill($pid, 0)) {
                echo "PID :{$pid} not exist \n";
                return false;
            }
            swoole_process::kill($pid);
            //等待5秒
            $time = time();
            $flag = false;
            while (true) {
                usleep(1000);
                if (!swoole_process::kill($pid, 0)) {
                    echo "server stop at " . date("y-m-d h:i:s") . "\n";
                    if (is_file($pidFile)) {
                        unlink($pidFile);
                    }
                    $flag = true;
                    break;
                } else {
                    if (time() - $time > 5) {
                        echo "stop server fail.try again \n";
                        break;
                    }
                }
            }
            return $flag;
        } else {
            echo "pid 文件不存在,请执行查找主进程pid,kill!\n";
            return false;
        }
    }

    function reload(){
        global $pidFile;
        if (file_exists($pidFile)) {
            $sig = SIGUSR1;
            $pid = file_get_contents($pidFile);
            if (!swoole_process::kill($pid, 0)) {
                echo "pid :{$pid} not exist \n";
                return;
            }
            swoole_process::kill($pid, $sig);
            echo "send server reload command at " . date("y-m-d h:i:s") . "\n";
        } else {
            echo "pid 文件不存在,请执行查找主进程pid,kill!\n";
        }
    }

试行一、使用三台服务器器,一台主两台从

拉开服务器后

2、重启MySQL

下边写一个脚本去重启和终止服务端。(原理就是给mast进度发送信号)

美高梅手机版登录,添加log-slave-updates=true

美高梅集团4688 4

fudge127.127.1.0 startum 8

主进度如故1827,不过工作进度就被reload的了。

在主MySQL上配置

下一场查看pid_file里的master进度id是或不是是1827,上图所示。结果肯定是同样的

消除办法

先实施重启

3、重启ntp服务

查阅进度确实丢失了

MySQL主从复制的花色:

美高梅集团4688 5

4)数据丢失导致前者不能正常工作

美高梅集团4688 6

添加底下两句

 

ntpdate 192.168.11.102将团结的大运一起到主MySQL上

show slave status\美高梅集团4688,G;

1)基于语句的复制

4、在两台从MySQL上安装ntpdate工具

2)服务不可用无法处理多量的高并发数据请求

master to
master_host=’192.168.11.102′,master_user=’myslave’,master_password=’123123′

vim/etc/ntp.conf

2)基于行的复制

/etc/init.d/mysqld restart

relay-log=relay-log-bin

flush privileges;

若是蒙受这几个荒唐就是认证您只装了服务端而并未主客户端

做事步骤:

2、多刷新三遍后发觉时间差越来越小

在主MySQL上创建一个库

3、从服务器得到主的二进制日志写入中继日志中

yum -y install ntpdate

[root@localhost ~]# vim /etc/my.conf

2、编辑/etc/ntp.conf配置文件

1、cp /usr/share/doc/mysql-server-5.1.71/my-medium.cnf

相关文章