如何进行分离式部署


假设需要部署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按照进程切分分别部署独立的业务worker实例:

  • 192.168.1.2机器只部署生产器进程实例(producer进程实例)
  • 192.168.1.3机器只部署下载器进程实例(downloader进程实例)
  • 192.168.1.4机器只部署解析器进程实例(parser进程实例)

03、设置服务器192.168.1.2的producer进程实例配置

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

主要配置生产任务的间隔时间,比如设定每隔2秒生产一条任务:

<?php
return array(
    'interval' => 2,
);

04、设置服务器192.168.1.4的parser进程实例配置

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

假设服务器192.168.1.4的parser实例监听端口 8888:

<?php
return array(
    'socket' => array(
        'server' => array(
            'scheme' => 'websocket',
            'host' => '192.168.1.4',
            'port' => 8888,        
        ),  
    ),  
);

05、设置服务器192.168.1.3的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.4',    //请填写目标parser实例监听地址
                    'port' => 8888,             //请填写目标parser实例监听端口
                ],
            ),
        ),
    ),
);

06、分别设置三台服务器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,
    ),
);

07、启动服务器192.168.1.2的producer进程实例

php /path/to/PHPCreeper-Application/Application/Spider/Weather/Start/AppProducer.php start 

08、启动服务器192.168.1.3的downloader进程实例

php /path/to/PHPCreeper-Application/Application/Spider/Weather/Start/AppDownloader.php start

09、启动服务器192.168.1.4的parser进程实例

php /path/to/PHPCreeper-Application/Application/Spider/Weather/Start/AppParser.php start

10、至此分离式部署完毕。

Free Web Hosting