如何进行分布式部署


假如需要部署4台服务器提供高可用服务:

192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4

01、选定192.168.1.1服务器专门用于部署 redis 服务,所以启动 redis-server 服务即可。

02、选定其余三台服务器192.168.1.2~4分别部署同一份 PHPCreeper-Application 业务代码。

03、分别设置三台服务器192.168.1.2~4关于parser实例的socket监听配置:

vim /path/to/PHPCreeper-Application/Application/Spider/Weather/Config/AppParser.php

假定其余三台服务器192.168.1.2~4的parser实例均监听同一个端口 8888:

<?php
return array(
    'socket' => array(
        'server' => array(
            'scheme' => 'websocket',
            'host' => '192.168.1.2', //每台parser实例所属服务器的内网或公网IP
            'port' => 8888,          //每台parser实例所属服务器的监听端口
        ),  
    ),  
);

04、分别设置三台服务器192.168.1.2~4的downloader实例的socket配置:

vim /path/to/PHPCreeper-Application/Application/Spider/Weather/Config/AppDownloader.php

分别配置地址指向对应的parser实例监听地址, 当然也可以指向其中任意一台目标parser实例监听地址:

<?php
return array(
    'socket' => array(
        'client' => array(
            'parser' => array(
                [
                    'scheme' => 'ws',           //必须和目标 parser 实例监听协议配套
                    'host' => '192.168.1.2',    //目标 parser 实例监听地址
                    'port' => 8888,             //目标 parser 实例监听端口
                ],
            ),
        ),
    ),
);

05、分别设置三台服务器192.168.1.2~4的redis配置:

vim /path/to/PHPCreeper-Application/Application/Spider/Weather/Config/database.php

配置数据库主机地址指向:192.168.1.1:6379

<?php
return array(
    'redis' => array(
        'prefix' => 'Weather',
        'host'   => '192.168.1.1',
        'port'   => 6379,
        'database' => 0,
    ),
);

06、逐台启动全局启动脚本,分布式部署完毕。

php Weather.php start
Free Web Hosting