如何进行分布式部署


假如需要部署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