如何进行分布式部署
假如需要部署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