参考官网分布说明 http://doc2.workerman.net/326144

准备:两台内网服务器A1,A2

A1服务器写PHP脚本前端访问

<?php
// 注意这里使用A2服务器的内网ip:port
// 如果本地则可以使用 0.0.0.0:port
// 外网服务器使用 外网ip:port
GatewayClient::$registerAddress = "172.16.100.24:6000";
// 发送数据
GatewayClient::sendToUid( "6201944211a7", "sdsadadas" );

A2服务器写入gateway脚本

start_businessworker.php

<?php
use \Workerman\Worker;
use \Workerman\WebServer;
use \GatewayWorker\Gateway;
use \GatewayWorker\BusinessWorker;
use \Workerman\Autoloader; // bussinessWorker 进程
$worker = new BusinessWorker();
// worker名称
$worker->name = 'HdwBusinessWorker';
// bussinessWorker进程数量
$worker->count = 4;
// 服务注册地址
// 分布式则参考官网文档
// 同台服务器则可以使用 127.0.0.1:port
// 内网服务器则可以使用 内网ip:port
// 外网服务器则可以使用 外网ip:port
$worker->registerAddress = '127.0.0.1:6000';
/**
* 设置处理业务的类为MyEvent。
* 如果类带有命名空间,则需要把命名空间加上,
* 类似$worker->eventHandler='\my\namespace\MyEvent';
*/
// $worker->eventHandler = 'MyEvent';
// 设置使用哪个类来处理业务,默认值是Events,即默认使用Events.php中的Events类来处理业务。业务类至少要实现onMessage静态方法,onConnect和onClose静态方法可以不用实现。 // 如果不是在根目录启动,则运行runAll方法
if(!defined('GLOBAL_START')) {
Worker::runAll();
}

start_gateway.php

<?php
use \Workerman\Worker;
use \Workerman\WebServer;
use \GatewayWorker\Gateway;
use \GatewayWorker\BusinessWorker;
use \Workerman\Autoloader; // gateway 进程,这里使用Text协议,可以用telnet测试
$gateway = new Gateway("Hardware://0.0.0.0:6049");
// gateway名称,status方便查看
$gateway->name = 'HdwGateway';
// gateway进程数
$gateway->count = 4;
// 本机ip,分布式部署时使用内网ip
// 这里ip必须为内网ip满足A1服务器调用
$gateway->lanIp = '172.16.100.24';
// 内部通讯起始端口,假如$gateway->count=4,起始端口为4000
// 则一般会使用4000 4001 4002 4003 4个端口作为内部通讯端口
$gateway->startPort = 6040;
// 服务注册地址
$gateway->registerAddress = '127.0.0.1:6000'; // 心跳间隔
$gateway->pingInterval = 30;
// $pingNotResponseLimit * $pingInterval 时间内,客户端未发送任何数据,断开客户端连接
$gateway->pingNotResponseLimit = 2;
// 心跳数据
// 技巧1:如果客户端有定时向服务端发送心跳检测,则服务端可以不必向客户端发送心跳检测,即利用客户端主动发送的数据判断客户端是否存活。这时我们需要设置pingData=''
$gateway->pingData = getPingData(); /*
// 当客户端连接上来时,设置连接的onWebSocketConnect,即在websocket握手时的回调
$gateway->onConnect = function($connection)
{
$connection->onWebSocketConnect = function($connection , $http_header)
{
// 可以在这里判断连接来源是否合法,不合法就关掉连接
// $_SERVER['HTTP_ORIGIN']标识来自哪个站点的页面发起的websocket链接
if($_SERVER['HTTP_ORIGIN'] != 'http://kedou.workerman.net')
{
$connection->close();
}
// onWebSocketConnect 里面$_GET $_SERVER是可用的
// var_dump($_GET, $_SERVER);
};
};
*/ // 如果不是在根目录启动,则运行runAll方法
if(!defined('GLOBAL_START')) {
Worker::runAll();
}

start_register.php

<?php
use \Workerman\Worker;
use \GatewayWorker\Register; // register 服务必须是text协议
$register = new Register('text://0.0.0.0:6000');
// 如果不是在根目录启动,则运行runAll方法
if(!defined('GLOBAL_START')) {
Worker::runAll();
}

服务器:

A1服务器无任何需要配置,

A2服务器①、Register服务监听的端口要可以被其它内网服务器访问(外网访问可以屏蔽);②、start_gateway.php中如果$gateway->startPort=2300; $gateway->count=4;,则2300 2301 2302 2303四个端口需要被设置成能被其它服务器访问,也就是起始端口$gateway->startPort$gateway->startPort + $gateway->count - 1这 $gateway->count个端口要设置成能被其它内网服务器访问。

GatewayWorker 分布初试的更多相关文章

  1. 【JVM学习笔记一】JVM内存分布

    Overview 学习JVM首先需要了解一下JVM管理的内存是如何分布的,在看了<深入理解Java虚拟机>和一些博文之后,我准备自己记录一下学习的过程. 下图是JVM中运行时数据区的大致示 ...

  2. 初试weka数据挖掘

    初试weka数据挖掘 Posted on 2013-09-07 13:26 DM张朋飞 阅读(321) 评论(7) 编辑 收藏 偶然间在网上看到了一篇关于weka好的博文,就记录了下来…… weka下 ...

  3. Spark踩坑记——初试

    [TOC] Spark简介 整体认识 Apache Spark是一个围绕速度.易用性和复杂分析构建的大数据处理框架.最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apach ...

  4. 关于Repository、IUnitOfWork 在领域层和应用服务层之间的代码分布与实现

    本来早就准备总结一下关于Repository.IUnitOfWork之间的联系以及在各层中的分布,直到看到田园里的蟋蟀发表的文章:<DDD 领域驱动设计-谈谈 Repository.IUnitO ...

  5. 【T-SQL】分布抽取部分数据

    好吧,我确实不知道该怎么起这个标题,整了一个“分布”,感觉还有点高档,其实没啥技术含量,看完你就知道了.情况是这样,刚刚接到一个临时任务,需要让几个营业点的销售数据[变]少一点,就是在ERP的相关报表 ...

  6. Hadoop2.6.0安装—单机/伪分布

    目录 环境准备 创建hadoop用户 更新apt 配置SSH免密登陆 安装配置Java环境 安装Hadoop Hadoop单机/伪分布配置 单机Hadoop 伪分布Hadoop 启动Hadoop 停止 ...

  7. Fold Change和t分布

    基因表达谱数据 基因表达谱可以用一个矩阵来表示,每一行代表一个基因,每一列代表一个样本(如图1).所有基因的表达谱数据在“gene_exp.txt”文件中存储,第一列为基因的entrez geneid ...

  8. caffe初试(一)happynear的caffe-windows版本的配置及遇到的问题

    之前已经配置过一次caffe环境了: Caffe初试(一)win7_64bit+VS2013+Opencv2.4.10+CUDA6.5配置Caffe环境 但其中也提到,编译时,用到了cuda6.5,但 ...

  9. 特许金融分析师 (CFA) 持证人现在一般在做什么工作?职业分布是怎样的?

    特许金融分析师 (CFA) 持证人现在一般在做什么工作?职业分布是怎样的?  陈雨桐 1. 全球范围: 根据 CFA 协会 2014 年 6 月的报告: CFA Institute has over ...

随机推荐

  1. [Python] pip 简明指南

    安装 1. 使用 apt 安装: $ sudo apt-get install python-pip 截止本文落笔,apt 安装 pip 版本为 1.0,但 pip 最新发行版本为 1.5.6 $ p ...

  2. WCF数据传输安全--数字证书

    WCF 的传输安全涉及认证(客户端与服务器端双向认证).消息一致性(签名)和机密性(加密)三个主题. 常用认证方式: 第一:用户名/密码认证:wcf提供三种认证模式:1.将用户名映射到windows账 ...

  3. RabbitMQ 学习

    参考:https://www.rabbitmq.com/getstarted.html 先在本地安装RabbitMQ 组件(需要安装Erlang组件),启动服务. 激活 RabbitMQ's Mana ...

  4. ELK之elasticsearch集群搭建

    安装配置elasticsearch不详述 环境:主elasticsearch IP 172.16.90.11 备elasticsearch IP  172.16.90.12 修改配置文件 /etc/e ...

  5. [others] 一个酷酷的站

    https://xkcd.com/ https://xkcd.com/1080/

  6. mysql学习【第1篇】:初识MySQL

    狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! mysql学习[第1篇]:初识MySQL 只会写代码的是码农:学好数据库,基本能混口饭吃:在此基 ...

  7. 转:spring data jpa、 hibernate、 jpa 三者之间的关系

    原文链接:spring data jpa. hibernate. jpa 三者之间的关系 spring data jpa hibernate jpa 三者之间的关系 JPA规范与ORM框架之间的关系是 ...

  8. 转:AOP与JAVA动态代理

    原文链接:AOP与JAVA动态代理 1.AOP的各种实现 AOP就是面向切面编程,我们可以从以下几个层面来实现AOP 在编译期修改源代码 在运行期字节码加载前修改字节码 在运行期字节码加载后动态创建代 ...

  9. 转:ORACLE 中ROWNUM用法总结!

    oracle 分页查询语句:select * from (select u.*,rownum r from (select * from userifno) u where rownum<大值) ...

  10. LEO原创-FMX之你不知道的ARC

    LEO原创13498714 FMX加入了ARC技术,对象创建后不用释放,FMX会帮你释放,是不是这样就不用关心对象的释放了呢,非也! 写简单的代码,这个功能也许很好用,但如果你写的是一个项目,那隐藏的 ...