【linux + lighttpd + php + zeromq】之实战训练二

三、实践

    2. zeromq mdp(Majordomo Protocol)模式测试

        说明:

                  1) zeromq mdp模式大家可以到zeromq官网的guide自己学习,不在此处赘述。

                         不过mdp模式的结构还是要提一下,具体如下图:

                  2) 测试环境说明(默认您已经安装了zmq库和czmq库,已经php增加了zmq组件。)

                         根据mdp模式的架构,分成三部分:

                                     a) client:php实现

                                     b) broker:C实现

                                     c) worker:C实现

 

            客户端代码:mdclient.php                

                    版权说明: 此代码是ZMQ官网测试代码,可能做了一点修改;

                                       在此处就不将所有代码贴出来了,其实都是zmq官网上的测试代码,经过一些简单的修改;

                                       如果哪位同学有需要,或测试过程中遇到什么困难,可以直接评论,我们一起讨论。

          运行说明:此处默认您已经为php安装了zmq插件,详细情况请参考上一篇博客《环境搭建》;
           
<?php
/*
 * Majordomo Protocol client example
 * Uses the mdcli API to hide all MDP aspects
 *
 * @author Ian Barber <ian(dot)barber(at)gmail(dot)com>
 */
include_once 'mdcliapi.php';

$verbose = $_SERVER['argc'] > 1 && $_SERVER['argv'][1] == '-v';
$session = new MDCli("tcp://localhost:5555", $verbose);
for ($count = 0; $count < 10; $count++) {
    $request = new Zmsg();
    $request->body_set("Hello world from php client");
    $reply = $session->send("echo", $request);
    if (!$reply) {
        break; // Interrupt or failure
    }
}
printf ("%d requests/replies processed", $count);
echo PHP_EOL;

?>
 
 
      测试结果(client):
      测试结果(broker):
      测试结果(worker):
     测试结果分析:
         1)从client(php)发送字符串“Hello world from php client”;
         2)经过broker路由(broker没有打开调试开关,所以看不到打印过程);
         3)最终发送到worker。

 

          测试过程遇到的问题:

                 上面的示例是client仅发送,没有接收。如果使用mdclient2.php那套代码测试,worker和broker使用c,且发送多帧数据时,你会发现client解析会出现错误。经排查这是由于php client在接收时少解析一个帧。

 

四、总结

       【linux + lighttpd + php + zeromq】这套架构,从环境搭建,到两个小例子测试都已经完成。相信如果自己实践过的同学,应该算入门了。如果想将此架构应用到实际的项目中,可能还有不少路要走。希望遇到问题的同学,能在此博客一起讨论,交流。

 

微笑没有目标或梦想的生活很可怕,很无聊!

微笑你明天的生活,是由你今天决定的!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值