zoukankan      html  css  js  c++  java
  • rabbitmq简单运用

    <?php
    /**
     * 生产者
     */
    
    
    $connection = new AMQPConnection([
        'host' => '192.168.23.130',
        'port' => 5672,
        'login' => 'rabuser',
        'password' => '123456'
    ]);
    
    $connection->connect() or die('连接失败');
    
    try{
    
        $exchange_name = 'trades';
        $route_key = '/trade';
        //投递消息到中间件
    
        $channel = new AMQPChannel($connection);//创建消息通道
    
        $exchange = new AMQPExchange($channel);//通过通道连接交换几
        //设置通道名称
        $exchange->setName($exchange_name);
    
        $data = json_encode(['time'=>time()]);
        //发布消息到交换机中
        $exchange->publish($data,$route_key);
    
    
    }catch (AMQPChannelException $e){
        var_dump($e);
    }
    

      

    <?php
    /**
     * 消费者
     */
    
    $connection = new AMQPConnection([
        'host' => '192.168.23.130',
        'port' => 5672,
        'login' => 'rabuser',
        'password' => '123456'
    ]);
    
    $connection->connect() or die('连接失败');
    
    
    try{
    
        $exchange_name = 'trades';
        $route_key = '/trade';
        $queue_name = 'queue';
        //投递消息到中间件
    
        $channel = new AMQPChannel($connection);//创建消息通道
    
        $exchange = new AMQPExchange($channel);//通过通道连接交换几
        //设置通道名称
        $exchange->setName($exchange_name);
        //三种获取消息的模式,直连模式,主题模式,广播模式
    
        $exchange->setType(AMQP_EX_TYPE_DIRECT);
        //声明
        $exchange->declareExchange();
    
        //声明队列绑定交换机路由
        $queue = new AMQPQueue($channel);
        $queue->setName($queue_name);
        $queue->declareQueue();
    
        //绑定监听获取数据
        $queue->bind($exchange_name,$route_key);
    
        //消费数据,默认阻塞监听获取数据
        $queue->consume(function ($event,$queue){
            //获取数据
            $msg = $event->getBody();
    
            var_dump($msg);
            var_dump($queue);
            //回应ACK
            $queue->ack($event->getDeliveryTag());
        });
    
    }catch (AMQPChannelException $e){
        var_dump($e);
    }
    

      

  • 相关阅读:
    APP高级抓包
    Linux使用日志
    ffmpeg使用记录
    win7 远程连接ubuntu
    v-2-r-a-y使用
    adb
    golang mysql 模糊查询
    交互式批量删除指定目录下指定类型文件
    golang打包和部署到centos7
    Nginx unknown directive ""
  • 原文地址:https://www.cnblogs.com/pangxiaox/p/11070926.html
Copyright © 2011-2022 走看看