Swoole创建RabbitMQ生产者

本文主要与前面的Node.js做压测对比,关于扩展安装可以看下面链接。
【Node.JS创建RabbitMQ生产者】https://www.jianshu.com/p/5a498e5134ea
swoole扩展安装:https://wiki.swoole.com/wiki/page/6.html
RabbitMQ的PHP扩展安装:http://blog.csdn.net/qq_30502699/article/details/78007991
PHP-RabbitMQ系列教程:http://blog.csdn.net/demon3182/article/details/77335123

<?php 
//配置信息 
$conn_args = array( 
    'host' => '127.0.0.1',  
    'port' => '5672',  
    'login' => 'admin',  
    'password' => 'admin', 
    'vhost'=>'/' 
);   
// 队列自己先创建好 指定路由key 
$e_name = 'php_e'; //交换机名 
$k_route = 'php_key'; //路由key 
//创建连接和channel 
$conn = new AMQPConnection($conn_args);   
if (!$conn->connect()) {   
    die("Cannot connect to the broker!\n");   
}   
$channel = new AMQPChannel($conn);   
//创建交换机对象    
$ex = new AMQPExchange($channel);   
$ex->setName($e_name);   
date_default_timezone_set("Asia/Shanghai");

$http = new swoole_http_server("0.0.0.0", 8008);
$http->on('request', function ($request, $response) use($ex,$k_route)
{
    $ex->publish(json_encode($request->get), $k_route);
    $response->end(json_encode($request->get));
});
$http->start();

composer安装php-amqplib的话用起来简单些(详细参考上面系列教程链接)

<?php
require_once __DIR__ . '/vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;

$connection = new AMQPStreamConnection('127.0.0.1', 5672, 'admin', 'admin');
$channel = $connection->channel();
$q_name = 'amqplib_test';
$channel->queue_declare($q_name, false, false, false, false);

$http = new swoole_http_server("0.0.0.0", 8008);
$http->on('request', function ($request, $response) use($channel,$q_name)
{
    $msg = new AMQPMessage(json_encode($request->get));
    $channel->basic_publish($msg, '', $q_name);
    $response->end("<h1>Hello Swoole-MQ.</h1>");
});
$http->start();

下面是第一份代码的压测截图

ab -n 30000 -c 600 http://127.0.0.1:8008/?a=6
Swoole-MQ.png
ab -n 200000 -c 1000 http://127.0.0.1:8008/?a=6
Swoole-MQ2.png
ab -n 500000 -c 2000 http://127.0.0.1:8008/?a=6
Swoole-MQ3.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,399评论 19 139
  • 作为一个前端程序猿,下面这些站会让你眼前一亮。 amazeui框架组建丰富 http://amazeui.org...
    欧巴冰冰阅读 12,868评论 18 303
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,377评论 25 709
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,674评论 2 45
  • 今年,听说去年结婚的同学怀了孩子,而且快生了。感觉真的是不可思议,果然结了婚会很快有孩子了。然后另一个同学前不久也...
    叙九念阅读 2,490评论 0 0