php整合rabbitmq记录

1.配置

整体参考https://www.cnblogs.com/miketwais/p/RabbitMQ.html

http://pecl.php.net/package/amqp下载是注意只有1.4之前的版本才支持php5,而xmapp下的php为5.6目前,另外注意xmapp的php版本为x86的,选择线程安全版本如下图


选择最后一个,选对版本一般没有问题,有问题的话php -v一般会报错。


2.tp5下composer下载第三方库

tp5下的composer.json文件添加

"require": {
        "php": ">=5.4.0",
        "topthink/think-installer": "~1.0",
        "php-amqplib/php-amqplib": "^2.7"

    },

或者直接在对应目录下composer require php-amqplib/php-amqplib

扫描二维码关注公众号,回复: 190383 查看本文章

等待一会后在vendor目录看到下载好的文件后就可以使用了(注意composer.json必须在目录的根目录下)


3.代码测试

tp5支持composer的autoload所以直接使用

use PhpAmqpLib\Connection\AMQPStreamConnection;

use PhpAmqpLib\Message\AMQPMessage;


$conn_args = array(
            'host' => '127.0.0.1',
            'port' => '5672',
            'login' => 'test',
            'password' => '123456',
            'vhost'=>'/'
        );
        $e_name = 'KSHOP'; //交换机名

        $k_queue = 'hello'; //路由key





 $connection = new AMQPStreamConnection($conn_args['host'], $conn_args['port'], $conn_args['login'],    $conn_args['password'], $conn_args['vhost']); // 创建连接
        $channel = $connection->channel();
        $channel->queue_declare($k_queue, false, true, false, false);
        $channel->exchange_declare($e_name, 'direct', false, true, false);
        $channel->queue_bind($k_queue, $e_name); // 队列和交换器绑定
        $messageBody = 'testinfo12'; // 要推送的消息
   $message = new AMQPMessage($messageBody, array('content_type' => 'text/plain', 'delivery_mode' =>                AMQPMessage::DELIVERY_MODE_PERSISTENT));
        $channel->basic_publish($message, '',$k_queue); // 推送消息
        $channel->close();

        $connection->close();



4.测试效果

运行代码后,java运行代码收到消息,到此后台基于rabbitmq的消息队列基本整合完毕。



猜你喜欢

转载自blog.csdn.net/w18637468680/article/details/79807929