zoukankan      html  css  js  c++  java
  • [学习笔记] RabbitMQ的简单使用

    安装依赖

    # composer.json
    {
        "require": {
            "php-amqplib/php-amqplib": ">=2.9.0"
        }
    }
    
    > composer.phar install
    

    (P) -> [|||] -> (C)

    生产者

    # send.php
    <?php
    require_once __DIR__ . '/vendor/autoload.php';
    use PhpAmqpLibConnectionAMQPStreamConnection;
    use PhpAmqpLibMessageAMQPMessage;
    
    $connection = new AMQPStreamConnection('localhost', 5672, 'guest', 'guest');
    // 创建通道
    $channel = $connection->channel();
    
    // 创建队列
    $channel->queue_declare('hello', false, false, false, false);
    
    $msg = new AMQPMessage('Hello World!');
    // 通过默认的交换机发送消息到队列 (消息内容, 默认交换机, 路由键);
    $channel->basic_publish($msg, '', 'hello');
    
    echo " [x] Sent 'Hello World!'
    ";
    
    $channel->close();
    $connection->close();
    

    消费者

    # receive.php
    <?php
    require_once __DIR__ . '/vendor/autoload.php';
    use PhpAmqpLibConnectionAMQPStreamConnection;
    
    $connection = new AMQPStreamConnection('localhost', 5672, 'guest', 'guest');
    $channel = $connection->channel();
    
    $channel->queue_declare('hello', false, false, false, false);
    
    echo " [*] Waiting for messages. To exit press CTRL+C
    ";
    
    $callback = function ($msg) {
        echo ' [x] Received ', $msg->body, "
    ";
    };
    
    $channel->basic_consume('hello', '', false, true, false, false, $callback);
    
    while ($channel->is_consuming()) {
        $channel->wait();
    }
    
    $channel->close();
    $connection->close();
    

    运行

    # shell 1
    php receive.php
    
    # shell 2
    php send.php
    

    查看队列

    # Linux
    sudo rabbitmqctl list_queues
    # Windows
    rabbitmqctl.bat list_queues
    
  • 相关阅读:
    python 安装与pip安装
    使用通配符来解决数据1和11、12/13/14的问题
    数据库中一行变多行,拆分数据
    15-哈希表 HashTable
    13-自平衡二分搜索树 AVLTree
    12-并查集 UnionFind
    11-字典树 Trie
    10-线段树 Segment Tree
    09-堆 Heap(最大堆)
    08-映射 Map
  • 原文地址:https://www.cnblogs.com/danhuang/p/12402689.html
Copyright © 2011-2022 走看看